使用h2数据库和eclipse转换varchar时发生数据转换错误

exdqitrt  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(452)

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

  1. PreparedStatement ps = con.prepareStatement("CREATE TABLE IF NOT EXISTS REGISTRATION "
  2. + "(id INTEGER auto_increment, "
  3. + " first VARCHAR(255), "
  4. + " last VARCHAR(255), "
  5. + " age INTEGER, "
  6. + " PRIMARY KEY ( id )) ");
  7. ps.executeUpdate();
  8. System.out.println("Table Created");

当我执行这个命令时,它会在控制台上打印“table created”。
这是insert.java类:

  1. Connection con = DriverManager.getConnection("jdbc:h2:file:C:/h2/test", "sami", "");
  2. PreparedStatement ps = con.prepareStatement("insert into REGISTRATION(first,last,age) values ('python', 'java', 24),"
  3. + "('jQuery', 'Angularjs', 10)");
  4. int i = ps.executeUpdate();
  5. System.out.println(i + " Record(s) inserted");

当我运行这个时,它会打印2条插入的记录。
这是我的display.java类:

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

当我运行这个时,它说“数据转换错误转换”python“[22018-200]”
我已经将代码更改为“prepared statement”,但它并没有解决问题。
有人能帮我吗?
谢谢

vc6uscn9

vc6uscn91#

你一个字也看不懂 VARCHAR 带的列 ResultSet.getInt() ,使用 ResultSet.getString() 而不是第2列和第3列。

相关问题