H2 数据库 郁闷的问题

yumendedao 2015-09-17 04:45:46

创建了一个数据库, url= jdbc:h2:E:/.h2/jwms,在数据库中创建一个表test,就2列,id和name
在console,手动插入3条数据,{{1,"n1"},{2,"n2"},{3,"n3"}}
然后用jdbc连接,查询表test,

Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:E:/.h2/mytest", "rcs", "rcs");
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("select * from test");

报错,提示表TEST找不到

然后我在程序中用 statement.executeUpdate(sql1);创建表,
sql1就是创建test表的sql语句,创建成功,没有报错(这表明原来的数据库中没有这个表,有的话会报错)
然后我继续用 statement.executeUpdate(sql2);插入2个数据{{4, "n4"},{5, "n5"}}
然后查询 ResultSet resultSet = statement.executeQuery("select * from test");
只能查到 4和5

好像console和程序连接的数据库是2个不同的数据库一样

然后我手动删除掉数据库文件 E:/.h2/jwms.h2.db jwms.mv.db jwms.trace.db
这3个文件,在程序中用这句, Connection conn = DriverManager.getConnection("jdbc:h2:E:/.h2/mytest", "rcs", "rcs");
自动的创建数据库,重复上述步骤,还是一样的结果,郁闷啊
求助为什么!!!!!!!
url没错,数据库还是用程序自动创建的,应该指向的是同一个数据库啊,为什么数据和表都不是同一个呢?
求助!!!!!!!搞了一天,就是不明白错在哪里
...全文
560 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xfzx2011 2017-02-08
  • 打赏
  • 举报
回复
UP!! 我也有类似问题 我在 Java 里创建表成功,但接着执行插入语句都找不到表!!console 也找不到……
yumendedao 2015-09-17
  • 打赏
  • 举报
回复
我换了种方式,在程序里建表,然后console里可以看到这个表,可以加数据,正常运行 这TMD的是为什么啊!!! 难道表的创建只能在程序里???
yumendedao 2015-09-17
  • 打赏
  • 举报
回复
而且,在程序中创建的表好像也持久化了,重复查询,值一直在,程序和console创建的表名字一样,console又创建了一个新表teest2,这个表在系统表 information_schema.tables 也是存在的 用程序查 information_schema.tables,只有一个表test 现在的问题就是 程序和console指向的数据库好像不是同一个,太操蛋了 url后加上参数 ;MVCC=TRUE;AUTO_SERVER=TRUE 也是一样
yumendedao 2015-09-17
  • 打赏
  • 举报
回复
求助!!!求助!!!求助!!!求助!!!求助!!!

50,639

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧