2 hzj728218965 hzj728218965 于 2013.05.16 07:57 提问

向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'

4个回答

franzhong
franzhong   2013.05.16 09:02
已采纳

主健内空重复了
主健设置自增了没?有没有使用外健?
不需要插入主键的值,在插入的时候指定字段例如

insert into myTable1(name,age) values("zhangSam",18);
u010713868
u010713868   2013.05.16 09:33

我给你找找啊 , 一会告诉你!

handsometao7
handsometao7   2013.05.16 18:19

字段全包含了?是一一对应的吗

u010092883
u010092883   2013.05.17 09:18

插入数据时先验证是否存在

Csdn user default icon
上传中...
上传图片
插入图片