我是靠谱客的博主 彩色大炮,最近开发中收集的这篇文章主要介绍mysql中的auto_increment如何重新赋值 ---PreparedStatement的setNull(),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在mysql设置过auto_increment最好不要自己给它赋值;要是想赋值可以通过 PreparedStatement.setNull(inti,int Type)设置
我的MVC ---DAO例子中,通过参数传递向mysql数据库中赋值,但是note(id,title,author,content)中的id是 自动增值的(auto_increment),如何对其赋值呢???
代码:

public void insert(Note note)throws Exception
 {
  String sql = "INSERT INTOnote(id,title,author,content) VALUES(?,?,?,?)" ;
  PreparedStatement pstmt = null;
  DataBaseConnection dbc = null;
  dbc = new DataBaseConnection();
  try
  {
   pstmt =dbc.getConnection().prepareStatement(sql);

   //关键代码,费了很多时间才找到的解决办法
   pstmt.setNull(1,1);
   pstmt.setString(2,note.getTitle());
   pstmt.setString(3,note.getAuthor());
   pstmt.setString(4,note.getContent());
   
   pstmt.executeUpdate();
   pstmt.close();
  }
  catch (Exception e)
  {
   //System.out.println(e) ;
   throw newException("操作中出现错误!!!") ;
  }
  finally
  {
   dbc.close();
  }
 }


ps:1.当已经给auto_increment赋某值时,继续赋相同值给它,会出错。

2.在java中如果要insert一行数据给数据表,且该行有auto_increment,如果auto_increment没有初值,会报错。

如果auto_increment已有值,则sql语句中auto_increment对应的值应为null,如:

con.modify(sql,null,user, password, contact, email);

最后

以上就是彩色大炮为你收集整理的mysql中的auto_increment如何重新赋值 ---PreparedStatement的setNull()的全部内容,希望文章能够帮你解决mysql中的auto_increment如何重新赋值 ---PreparedStatement的setNull()所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部