hzj728218965
2013-05-15 23:57
采纳率: 100%
浏览 2.4k

向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 2013-05-16 01:02
    已采纳

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

    insert into myTable1(name,age) values("zhangSam",18);
    
    点赞 评论
  • 小河湾1018 2013-05-16 01:33

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

    点赞 评论
  • handsometao7 2013-05-16 10:19

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

    点赞 评论
  • u010092883 2013-05-17 01:18

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

    点赞 评论

相关推荐 更多相似问题