在数据库中插入char数组

时间:2016-05-20 14:42:49

标签: java arrays jdbc

这是我的数据库中插入一个用户的函数。

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 谁能帮帮我呢?

1 个答案:

答案 0 :(得分:0)

String只不过是char数组。如果您将此char数组转换为String并将数据库端保持为VARCHAR2,它将解决您的问题。

String类已经有一个名为'valueOf'的方法,您可以使用char数组作为参数,然后返回一个String:

String tempoString = String.valueOf(tempo);
String idUtenteString = String.valueOf(id_utente);