为什么,写入数据库,只能写入第一条记录?? String cID=(String)session.getValue(“cID”); try String sConnStr=”jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Web”; ResultSet rs=stmt.executeQuery(“select * from order_info”); catch(SQLException e) |
|
4分 |
可能跟你数据库表的约束关系有关,比如你试图插入重复的元素
|
4分 |
把添加和查询 分开写
|
4分 |
鍥犱负浣犵殑鎿嶄綔鍙仛浜嗕竴娆″啓鍏?
濡傛灉鎯冲仛澶氳鍙ョ殑涓€璧峰啓鍏ラ渶瑕佸仛鎵瑰鐞嗐€傝鐢ㄤ簨鍔″鐞? 涓€鑸儏鍐典笅浣犲仛鐨勬彃鍏ョ瓑璇彞鏄嚜鍔ㄦ彁浜ょ殑銆傚厛灏嗛粯璁ょ殑鑷姩鎻愪氦鍋滀笅鏉ョ劧鍚庡皢浣犺鎻掑叆鐨勫鏉℃暟鎹坊鍔犲埌statement鐢ㄥ埌addBatch鏂规硶锛岀劧鍚庡啀鎻愪氦鏁翠釜浜嬪姟 |
乱码了啊。我重新发次.
如果你想要同时插入多条记录进数据库并查询你应该要先取消掉默认的自动提交.然后添加语句集合,再提交,也就是用到事务处理,做一个批处理的提交。不知道我这么说你明白没. 如果你想问的是为什么你的for循环那快:如下 int bookid=((shop.Bookinfo)buyList.elementAt(i)).getId(); int book_quantity=((shop.Bookinfo)buyList.elementAt(i)).getQuantity(); String query=”insert into order_info(Customer_ID,Book_ID,Book_Quantity) values(“””+cID+”””,”””+bookid+”””,”””+book_quantity+”””)”; stmt.executeUpdate(query); 没有多次插入数据库.那请你跟踪你的stmt的值以查明原因.基本来说你应该一看就明白了. 另外不建议你将那么多乱七八糟的sql语句写在一个方法里面. 并且我还希望你再次检查你的代码。请问你的for循环结束到底是放在什么地方的.如果你将它放在 rs.close(); stmt.close(); connWeb.close(); } 后面的,也就是上面这个大括号.如果你放这里的话。你的数据库根本就在for循环里第一次的循环就关闭了. |
|
4分 |
Java技术交流 QQ群:3701756 对JAVA方面有兴趣的一来交流交流吧!
|
4分 |
关注
|