当前位置: 技术问答>java相关
为何只可insert一条记录?
来源: 互联网 发布时间:2015-04-29
本文导语: 我用如下代码添加子类,每个父类下只可加入一条记录,好像new_order_id没有起作用,但是在添加第一条记录的时候又是好的,奇怪?求救 String type_name_cn=request.getParameter("name_cn"); String type_name_en=request.getParameter("name_en...
我用如下代码添加子类,每个父类下只可加入一条记录,好像new_order_id没有起作用,但是在添加第一条记录的时候又是好的,奇怪?求救
String type_name_cn=request.getParameter("name_cn");
String type_name_en=request.getParameter("name_en");
String type_parent_id=request.getParameter("parent_id");
int t_p_id=java.lang.Integer.parseInt(type_parent_id);
Rst=Stmt.executeQuery("select max(type_order_id) as num from type");
Rst.next();
int new_order_id=Rst.getInt("num");
new_order_id+=1;
Stmt.executeUpdate("insert into type (type_name_cn,type_name_en,type_parent_id,type_order_id) values ('"+type_name_cn+"','"+type_name_en+"',"+t_p_id+","+new_order_id+")");
String type_name_cn=request.getParameter("name_cn");
String type_name_en=request.getParameter("name_en");
String type_parent_id=request.getParameter("parent_id");
int t_p_id=java.lang.Integer.parseInt(type_parent_id);
Rst=Stmt.executeQuery("select max(type_order_id) as num from type");
Rst.next();
int new_order_id=Rst.getInt("num");
new_order_id+=1;
Stmt.executeUpdate("insert into type (type_name_cn,type_name_en,type_parent_id,type_order_id) values ('"+type_name_cn+"','"+type_name_en+"',"+t_p_id+","+new_order_id+")");
|
你的程序有问题结果集只有一条数据,就是用while也只能循环一次,当然只能插一条记录了
如果你用oracle 则主键用序列发生器,若是sql server则将id 设成自增加
如果你用oracle 则主键用序列发生器,若是sql server则将id 设成自增加
|
你应该做一个while循环呀!!!
while (Rst.next()) {
//....
}
while (Rst.next()) {
//....
}
|
是否key值重復,導致插入失敗.用事務處理吧,如果出錯就回滾否則提交.
|
这个问题挺有意思,呵呵,是不是打开的结果集类型不对,比如,独占模式等等,或是没有关闭啊,比如链接对象等等