java - 使用h2数据库和eclipse转换varchar的数据转换错误
问题描述
我已经将 eclipse 与 h2 数据库连接起来,并且已经创建了一个表并插入了一些输入。这些是我的课:
创建表.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]”
我已经将我的代码更改为“准备好的语句”,但它并没有解决问题。
有人能帮我吗?
非常感谢
解决方案
您无法读取带有 的VARCHAR
列,请ResultSet.getInt()
改用ResultSet.getString()
2 和 3 列。
推荐阅读
- flutter - 选定项目的价格计算
- java - 通过对其他 API 进行异步调用来提高 Spring Boot Web 服务的性能
- laravel - @click 显示 ReferenceError: 函数未使用 AlpineJS + Livewire + Laravel 定义
- python - 如何从多个数据框中添加或减去值
- python - Python:ValueError:Expecting,分隔符:加载json时的第1行
- html - 为什么变换:倾斜(30度);与变换不同:matrix(1,0,30,1,0,0);?
- typescript - TypeScript 定义,如何通过匹配参数中的某个值来对函数的参数进行不同的约束
- javascript - 只有一部分数据来自 https.request
- java - 如何告诉 MapperModel 的 map 函数,特定的字段应该具有特定的值?
- centos7 - OpenStack Train 找不到合适的 TLS CA 证书包