求助!关于PreparedStatement

jonkeyjohns 2004-01-10 06:03:41
我使用PreparedStatement来处理预编译的sql语句。
如果有一个字段(比如ID),类型是整型,自动编号(自动增加 auto incremet)
我不知道应该如何设置它的值
setInt("ID",0) 无法做到自动增加(永远是0)
setString("ID","")类型不匹配
……
应该如何处理??谢谢
...全文
78 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jonkeyjohns 2004-01-10
  • 打赏
  • 举报
回复
感谢danceflash(Wine)
只要不为这个字段赋值就可以了
再次感谢
comcy 2004-01-10
  • 打赏
  • 举报
回复
PreparedStatement有你这么用的嘛?
你可以在那个地方用变量的:
sql=insert into table (id,name)values(?,?)
PreparedStatement ps = connection.prepareStatement(sql);
pstmt.setInt(1,id);
pstmt.setString(2,name);
ResultSet rs = ps.execute();
danceflash 2004-01-10
  • 打赏
  • 举报
回复
如果你在创建数据库表的时候,告诉数据库,id这个字段是自增的
那么,你的insert语句中不应该有id这个字段的赋值,那已经由数据库负责了

如果数据库表中没有这样的设计,只是你想在程序中实现
那你pstmt.setInt("id",0);这条语句的第二个参数应该是一个你来控制递增数字
jonkeyjohns 2004-01-10
  • 打赏
  • 举报
回复
我可能没说清楚,我要用的是预编译sql语句,不是普通sql语句
比如sql=insert into table (id,name)values(?,?)
id是数据库中自动编号的字段
如果是普通sql语句 insert int table (id,name) values('','jonkeyjohns'),就可以做到id自动增加了。
但是,我必须要用前者,预编译的sql语句。
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setInt("id",0)//出问题的地方
pstmt.setString("name","jonkeyjohns")
pstmt.executeUpdate();
seaman0916 2004-01-10
  • 打赏
  • 举报
回复
就是呀,不设置呀!在SQL语句中,添加新的记录,没说一定要指定指呀,除了定义为not null的字段.
zjlgigi 2004-01-10
  • 打赏
  • 举报
回复
是插入新记录还是修改旧记录插入新记录,插入新记录好像没有过必要设它的值吧,让数据库来搞就是了
zengpan_panpan 2004-01-10
  • 打赏
  • 举报
回复
一般给个空就行。
给0也行,程序上看起来永远是0,实际上数据库服务器会忽略这个0,弄一个自动增加的数上去。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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