【问题标题】:Data conversion error converting varchar using h2 database and eclipse使用h2数据库和eclipse转换varchar的数据转换错误
【发布时间】:2020-09-14 15:35:48
【问题描述】:

我已经将 eclipse 与 h2 数据库连接起来,并且已经创建了一个表并插入了一些输入。 这些是我的课程:

CreateTable.java:

PreparedStatement ps = con.prepareStatement("CREATE TABLE IF NOT EXISTS REGISTRATION "
            + "(id INTEGER auto_increment, "
            + " first VARCHAR(255), "
            + " last VARCHAR(255), "
            + " age INTEGER, "
            + " PRIMARY KEY ( id )) ");

    ps.executeUpdate();
    System.out.println("Table Created");

当我执行此操作时,它会在控制台上打印“表已创建”。

这是 Insert.java 类:

Connection con = DriverManager.getConnection("jdbc:h2:file:C:/h2/test", "sami", "");
PreparedStatement ps = con.prepareStatement("insert into REGISTRATION(first,last,age) values ('python', 'java', 24),"
            + "('jQuery', 'Angularjs', 10)");

    int i = ps.executeUpdate();
    System.out.println(i + " Record(s) inserted");

当我运行它时,它会打印 2 个插入的记录。

这是我的 Display.java 类:

Connection con = DriverManager.getConnection("jdbc:h2:file:C:/h2/test", "sami", "");
PreparedStatement ps = con.prepareStatement("select * from REGISTRATION");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
    System.out.println(rs.getInt(1) + " " + rs.getInt(2) + " " + rs.getInt(3) + " " + rs.getInt(4));
}

当我运行它时,它显示“数据转换错误转换“python”[22018-200]”

我已经将我的代码更改为“准备好的语句”,但它并没有解决问题。

有人可以帮我吗?

非常感谢

【问题讨论】:

    标签: java sql h2 data-conversion


    【解决方案1】:

    您无法使用ResultSet.getInt() 读取VARCHAR 列,请使用ResultSet.getString() 代替第2 列和第3 列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-13
      • 2021-06-10
      • 2016-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      相关资源
      最近更新 更多