【问题标题】:Insert an array of char in database [duplicate]在数据库中插入一个char数组[重复]
【发布时间】:2016-09-17 21:28:09
【问题描述】:

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

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

【问题讨论】:

  • 可以将char数组转换成字符串(String str = String.valueOf(charArray);)存入DB
  • 谢谢!如果我也做这样的选择:“SELECT * FROM UTENTE WHERE time >= ? AND time

标签: java arrays jdbc


【解决方案1】:

String 只不过是 char 数组。如果你将这个你必须的 char 数组转换为 String 并将 DB 端保持为 VARCHAR2 它将解决你的问题。

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

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

【讨论】:

  • 谢谢!如果我也做这样的选择:“SELECT * FROM UTENTE WHERE time >= ? AND time
  • 这取决于你使用这个“时间”的格式。如果是日期,首先,我建议您在数据库端使用日期格式(日期、时间戳和资料)。您根本无法检查一个字符串是大于还是小于另一个字符串。您必须使用“to_date”(oracle 函数,可能在其他数据库中它有另一个名称)函数将其转换为日期,并使这个时间成为日期。
  • 所以我必须将所有字符数组(在我的例子中代表时间数组)转换为日期,以便可以比较它们
  • 基本上是的。您也可以在代码中将它们视为日期,然后“节奏”将是 java 中的日期或日历,以及 oracle 中的日期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多