当前位置: 技术问答>java相关
数据库中字段id递增问题?---在线等待
来源: 互联网 发布时间:2015-11-18
本文导语: 我的代码如下:添加数据时实现数据库中字段id递增1; String id="1"; ResultSet rs=stmt.executeQuery("select * from product"); if (!rs.next()) id="1"; else { rs.last(); id=rs.getString("id"); id=String.valueOf(Integer.parseInt(id)+1); rs.cl...
我的代码如下:添加数据时实现数据库中字段id递增1;
String id="1";
ResultSet rs=stmt.executeQuery("select * from product");
if (!rs.next())
id="1";
else
{
rs.last();
id=rs.getString("id");
id=String.valueOf(Integer.parseInt(id)+1);
rs.close();
}
//下面写插入语句
当数据库中没有记录时,也就是加第一条记录时会出现java.lang.NumberFormatException:这种错误,如果数据库中有记录,也就是加的不
是第一条记录时,可以正常添加,没有任何错误,请问大侠为什么 啊?
不甚感激!!!
String id="1";
ResultSet rs=stmt.executeQuery("select * from product");
if (!rs.next())
id="1";
else
{
rs.last();
id=rs.getString("id");
id=String.valueOf(Integer.parseInt(id)+1);
rs.close();
}
//下面写插入语句
当数据库中没有记录时,也就是加第一条记录时会出现java.lang.NumberFormatException:这种错误,如果数据库中有记录,也就是加的不
是第一条记录时,可以正常添加,没有任何错误,请问大侠为什么 啊?
不甚感激!!!
|
怀疑你的条件没起作用,不管是不是有记录都走的else
if (!rs.next())
id="1";
else
{
rs.last();
id=rs.getString("id");
id=String.valueOf(Integer.parseInt(id)+1);
rs.close();
}
改成
while(rs.next()) {
rs.last();
id=rs.getString("id");
id=String.valueOf(Integer.parseInt(id)+1);
rs.close();
}
if (!rs.next())
id="1";
else
{
rs.last();
id=rs.getString("id");
id=String.valueOf(Integer.parseInt(id)+1);
rs.close();
}
改成
while(rs.next()) {
rs.last();
id=rs.getString("id");
id=String.valueOf(Integer.parseInt(id)+1);
rs.close();
}
|
改成
while(rs.next()) {
rs.last();
id=rs.getString("id");
if(id==null||id.equals(""))
id="1";
else
id=String.valueOf(Integer.parseInt(id)+1);
rs.close();
}
while(rs.next()) {
rs.last();
id=rs.getString("id");
if(id==null||id.equals(""))
id="1";
else
id=String.valueOf(Integer.parseInt(id)+1);
rs.close();
}
|
oracle中没有“自增字段”类型,不过可以用其它方法实现,下面是用sequence实现
第一步:建立sequence变量
create sequence sequence_id
说明:该语句作为sql语句在建表之时直接运行,create sequence是关键字,就像create table一样,sequence_id是你自己取的名字,最好和你表中的递增字段名相关
第二步:在插入数据时引用sequence
insert mytable(id,name) values(sequence_id.nextVal,'sandm')
说明:nextVal用于获得sequence的下一个值,即让其递增
第一步:建立sequence变量
create sequence sequence_id
说明:该语句作为sql语句在建表之时直接运行,create sequence是关键字,就像create table一样,sequence_id是你自己取的名字,最好和你表中的递增字段名相关
第二步:在插入数据时引用sequence
insert mytable(id,name) values(sequence_id.nextVal,'sandm')
说明:nextVal用于获得sequence的下一个值,即让其递增