jdbc insert语句插入不生效的问题

dhx8787 2010-06-10 12:36:22
请问各位大虾,为何我的insert语句不生效呢??
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection coon = DriverManager.getConnection(url, user, password);
CreateSqlHelper sqlHelper = new CreateSqlHelper();
String sql = sqlHelper.createTableSql();
Statement stmt = coon.createStatement();
stmt.addBatch(sql);
String sql2 = sqlHelper.createInsertSql(this.path,sqlHelper.getTablename(),this.getColCount());
System.out.println("*********sql2 :"+sql2);
String[] sql3 = sql2.split(";");
for(int i = 0 ; i < sql3.length ; i++){
stmt.addBatch(sql3[i]);
}
stmt.executeBatch();
coon.close();

其中stmt.addBatch(sql);sql是建表的sql语句 ,stmt.addBatch(sql3[i]);是逐个添加insert语句,stmt.executeBatch();执行批处理。
可是表创建成功了,却没有数据导入进来。插入语句也都有输出。都正确。而且整个过程无任何报错。希望高人指点~~~
...全文
877 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dhx8787 2010-06-10
  • 打赏
  • 举报
回复
貌似按照这样的方法做了。可是还是没有数据出现。这是怎么回事呢???
Java技术栈 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wiloveryou123456789 的回复:]
你的数据库是oracle
事实上 你的数据库中已经有了数据。。。但是 你没有commit 所以在数据库中看不到。。。


oracle
默认是不会自动提交的。。。。你要手动配置。。。一下。。。
[/Quote]

对 在程序中控制下自动提交就行了

Connection conn = 。。。;
conn.setAutoCommit(false);
//你的插入代码
conn.commit();
Java技术栈 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wiloveryou123456789 的回复:]
你的数据库是oracle
事实上 你的数据库中已经有了数据。。。但是 你没有commit 所以在数据库中看不到。。。


oracle
默认是不会自动提交的。。。。你要手动配置。。。一下。。。
[/Quote]

对 在程序中控制下自动提交就行了

Connection conn = 。。。;
conn.setAutoCommit(false);
//你的插入代码
conn.commit();
androidmvc 2010-06-10
  • 打赏
  • 举报
回复
你的数据库是oracle
事实上 你的数据库中已经有了数据。。。但是 你没有commit 所以在数据库中看不到。。。


oracle
默认是不会自动提交的。。。。你要手动配置。。。一下。。。
JavaAlpha 2010-06-10
  • 打赏
  • 举报
回复
stmt.addBatch(sql3[i]);

在这行家的断点跟踪看看。
Landor2004 2010-06-10
  • 打赏
  • 举报
回复
分开吧,因为DDL(建表语句)会自动提交事务,这是oracle的机制,所以后面的语句可能被忽略了。

50,527

社区成员

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

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