这是我的数据库中插入一个用户的函数。
public Utente aggiungiUtente(char[] tempo, char[] id_utente, int x, int y, int z, int id_stanza) throws SQLException {
Connection c = null;
PreparedStatement s = null;
ResultSet r = null;
Utente risultato = null;
try {
c = creaConnessione();
s = c.prepareStatement("INSERT INTO UTENTE(time, id_utente, x, y, z, id_stanza) values (?,?,?,?,?,?) ", Statement.RETURN_GENERATED_KEYS);
String tempoString = tempo.toString();
String idUtenteString = id_utente.toString();
// s.set..(1, tempo);
// s.set..(2, id_utente);
s.setInt(3,x);
s.setInt(4,y);
s.setInt(5,z);
s.setInt(6,id_stanza);
s.execute();
r = s.getGeneratedKeys();
r.next();
risultato = factory.creaUtente(tempo, id_utente, x, y, z, id_stanza);
} catch (SQLException e) {
disconnetti(c,s,r);
throw e;
}
disconnetti(c,s,r);
return risultato;
}
但我不知道如何设置char数组。 在创建数据库时,我将它们构建为VARCHAR,对于我的项目,我需要这样做。 我试图将它们设置为:s.setString(tempo.toString);但是在数据库中会插入一个奇怪的东西:[C @ 76ccd017 谁能帮帮我呢?
答案 0 :(得分:0)
String只不过是char数组。如果您将此char数组转换为String并将数据库端保持为VARCHAR2,它将解决您的问题。
String类已经有一个名为'valueOf'的方法,您可以使用char数组作为参数,然后返回一个String:
String tempoString = String.valueOf(tempo);
String idUtenteString = String.valueOf(id_utente);