JSP中如何让数据库字段值自动加1

时间:2021-01-28 15:36:35
   String sq="UPDATE user SET postnum=postnum+1 WHERE id="+uid; 
  PreparedStatement pstmt=conn.getPstmt(sq);
  pstmt.setString(1,postnum);
  int flag=pstmt.executeUpdate(sq);
这样些提示错误postnum没有赋值。怎么样写才对呢

10 个解决方案

#1


可先在user表中取出id=‘uid’时postnum的值(postnum),newpostnum=postnum+1,然后“String sq="UPDATE user SET postnum=newpostnum WHERE id="+uid; ”这样应该没问题了,可以试试。

#2


让字段值 自动加一不可以吗? 或者每次插入的时候查找一下数据库中字段的最大值 然后加一 再插入。。

#3


先确认下:postnum是表里面的字段名么?如果是的话,你的SQL是没问题的,可以完成自增运算。

你这个SQL语句,并不需要任何参数,为啥会有:pstmt.setString(1,postnum) ?这句话应该删除掉。

#4


楼主请尝试下

String sq="UPDATE user SET postnum=postnum+1 WHERE id="+uid; 
PreparedStatement pstmt=conn.getPstmt(sq);
int flag=pstmt.executeUpdate(sq);

或者

String sq="UPDATE user SET postnum=?+1 WHERE id="+uid; 
PreparedStatement pstmt=conn.getPstmt(sq);
pstmt.setString(1,postnum);
int flag=pstmt.executeUpdate(sq);

#5


自动增长不行吗~

#6


到数据库设置表的主键的策略 设置为自动增长

#7


1:主键设置为自动增长。
2:select max(id) from yourtable
取得最大值 +1 

#8


数据库里直接设置。

#9


pstmt.setString(1,postnum);这句肯定报错,postnum在字符串里是不会被编译器识别成变量的
 

#10


String sq="UPDATE user SET postnum=postnum+1 WHERE id="+uid; 
 try {
    Statement stmt = conn.getStmt();
int fla=stmt.executeUpdate(sq);
 stmt.close();
这样就OK了

#1


可先在user表中取出id=‘uid’时postnum的值(postnum),newpostnum=postnum+1,然后“String sq="UPDATE user SET postnum=newpostnum WHERE id="+uid; ”这样应该没问题了,可以试试。

#2


让字段值 自动加一不可以吗? 或者每次插入的时候查找一下数据库中字段的最大值 然后加一 再插入。。

#3


先确认下:postnum是表里面的字段名么?如果是的话,你的SQL是没问题的,可以完成自增运算。

你这个SQL语句,并不需要任何参数,为啥会有:pstmt.setString(1,postnum) ?这句话应该删除掉。

#4


楼主请尝试下

String sq="UPDATE user SET postnum=postnum+1 WHERE id="+uid; 
PreparedStatement pstmt=conn.getPstmt(sq);
int flag=pstmt.executeUpdate(sq);

或者

String sq="UPDATE user SET postnum=?+1 WHERE id="+uid; 
PreparedStatement pstmt=conn.getPstmt(sq);
pstmt.setString(1,postnum);
int flag=pstmt.executeUpdate(sq);

#5


自动增长不行吗~

#6


到数据库设置表的主键的策略 设置为自动增长

#7


1:主键设置为自动增长。
2:select max(id) from yourtable
取得最大值 +1 

#8


数据库里直接设置。

#9


pstmt.setString(1,postnum);这句肯定报错,postnum在字符串里是不会被编译器识别成变量的
 

#10


String sq="UPDATE user SET postnum=postnum+1 WHERE id="+uid; 
 try {
    Statement stmt = conn.getStmt();
int fla=stmt.executeUpdate(sq);
 stmt.close();
这样就OK了