日期:2014-05-20  浏览次数:20719 次

急!数据库相关问题,百思不得其解!在线等
我想存一个表格到数据库里面去,使用循环语句,每次存入一行,但奇怪的是循环好像没有作用,及时执行循环每次还是只能存进去一行。
        后来我又一行一行的存,表格每一行写一个SQL语句,并执行一次,即有多少行存多少次,但奇怪的是执行完第一条SQL语句便跳出这个方法了,在程序中加的“哨兵”显示的也是这个情况。
比如程序段       String   SQL0= "............. "  
                          System.out.println( "0 ");
                          st.executeQuery(SQL0);
                          System.out.println( "1 ");
        String   SQL1= "............. "    
                          System.out.println( "2 ");
                          st.executeQuery(SQL1);
                          System.out.println( "3 ");
                          String   SQL2= "............. "    
                          System.out.println( "4 ");
                          st.executeQuery(SQL2);
                          System.out.println( "5 ");
上面执行后,数据库中只增加的SQL0对应的表格中的那一行,命令行也只输出“0”,就是说执行完st.executeQuery(SQL0)后程序就终止了,这是什么原因呢?



------解决方案--------------------
事务是自动提交的 你要设置一下自动提交为false 执行多条sql之后 commit一下
------解决方案--------------------
有个方法

setAutoCommit(false);

我既不清是哪个类的了

好像是那个连接对象
------解决方案--------------------
就是说执行完st.executeQuery(SQL0)后程序就终止了,这是什么原因呢?
----
确定没有异常产生?
------解决方案--------------------
你该把抛出的异常,和全部代码发上来。

这么点代码真的不好知道问题在哪里!

可能我水平不行吧
------解决方案--------------------
setAutoCommit(false);后SQL语句执行完了后再commit一下才行的
你插入值的话用st.executeQuery不好吧,用st.executeUpdate
addBatch(SQL)这种属于批处理的方式,实际上原理和setAutoCommit(false);是一样的