自己先去select一次,看看是不是已经存在
要不就是你判断那个SQLException中的错误代码(但是这个应该是不同数据库不一样的,不统一)

解决方案 »

  1.   

    就是因为想偷个懒,不想去select判断,所以才把该字段设成unique,由数据库自己完成这个判断,问题是怎么捕捉这个。具体代码应该怎么写?
      

  2.   

    你可以先以这个数据来进行SELECT或者把他设置为主键来扑捉异常!在进行判断。
      

  3.   

    try {
       //执行插入操作
    } catch (SQLException e) {
       //发现错误,写处理方法,比如 response.sendRediret...
    }
      

  4.   

    如果等数据库自己异常捕捉处理的话会降低你程序效率的。建议不要在异常处理里面做逻辑处理。还是先SELECT以下比较好
      

  5.   

    我插入记录是在bean中完成的,现在我把它改成
    try {
       //执行插入操作
    }catch(SQLException sqlexception){
        System.err.println(sqlexception.getMessage());
    }
    后可以在控制台窗口中看到 Invalid argument value,message from server:"Duplicate entry 'Tom' for key 2" 这样的出错信息,不过我怎么把它传回给jsp页面,让页面弹出个窗口提醒用户“该用户已存在!”呢?
      

  6.   

    try {
       //执行插入操作
    }catch(SQLException sqlexception){
        System.err.println(sqlexception.getMessage());
    out.println("<script>alert('该用户已存在!');</script>");
    }