问题描述
- 向mysql数据库中插入数据时报错
-
public class categorydao { public static void save(category c) throws SQLException{ Connection conn=(Connection) DB.getConnection(); String sql=null; if(c.getId()==-1){ sql="insert into category values(null,?,?,?,?,?)"; }else{ sql="insert into category values("+c.getId()+",?,?,?,?,?)"; } PreparedStatement ps=conn.prepareStatement(sql); try { ps.setString(1,c.getName() ); ps.setString(2,c.getDescr()); ps.setInt(3, c.getPid()); ps.setInt(4, c.isIsleaf()?0:1); ps.setInt(5, c.getGrade()); ps.executeUpdate(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ DB.free(null, ps, conn); } }
错误如下:(反正插入不了)
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
解决方案
主健内空重复了
主健设置自增了没?有没有使用外健?
不需要插入主键的值,在插入的时候指定字段例如
insert into myTable1(name,age) values("zhangSam",18);
解决方案二:
我给你找找啊 , 一会告诉你!
解决方案三:
字段全包含了?是一一对应的吗
解决方案四:
插入数据时先验证是否存在
时间: 2024-09-13 16:29:27