关于MYSQL主键报错!

zdb458707957 2015-03-16 03:30:34
我做了一个简单的学生注册表单,在数据库里面设置学号为主键,然后当我在注册的时候,如果有人填写学号是别人已经注册过了的,代码就报错了,请问该怎么解决!
...全文
264 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
_南天北落 2015-03-18
  • 打赏
  • 举报
回复
是的,要先看主键是否重复,判断然后在插入。
zdb458707957 2015-03-17
  • 打赏
  • 举报
回复
请问一下,假如我后台查询的代码是: String schoolNumber = request.getParameter("schoolNumber"); String querysql = "select* from student where schoolNumber = "+schoolNumber; 那么接来下该怎么写判断???
踩沙滩 2015-03-17
  • 打赏
  • 举报
回复
这是我SpringMVC弄的一个,一个参考参考。User user是前端页面传递过来的学生信息,参考逻辑就行。。

    @RequestMapping("/addUser")  
     public String addUser(User user,HttpServletRequest request,  
                HttpServletResponse response) throws Exception{  
        Json json = new Json();//用于向前端发送消息  
        if(userService.getById(user.getUserId())!=null){  
            json.setMsg("新建用户失败,用户已存在!");  
        }else{  
            userService.save(user);  
            json.setMsg("新建用户成功!");  
            json.setSuccess(true);  
        }  
        writeJson(json,response);  
        return null;  
        } 
踩沙滩 2015-03-17
  • 打赏
  • 举报
回复
引用 3 楼 yang362046076 的回复:
或者先获取要注册的学号,然后根据这个学号查数据库,看能不能查到学生,如果能就说明已经有学生了,这样返回消息说已经有人注册就行
你这返回类型不是String吧?查询应该返回一个Student对象呀,然后你判断这个对象是否为空

Student stu = "select* from student where schoolNumber = "+schoolNumber;
if(stu!=null)
{
      注册。。。把新注册学生写进数据库
}else{
     提示已存在。
}

踩沙滩 2015-03-16
  • 打赏
  • 举报
回复
或者先获取要注册的学号,然后根据这个学号查数据库,看能不能查到学生,如果能就说明已经有学生了,这样返回消息说已经有人注册就行
踩沙滩 2015-03-16
  • 打赏
  • 举报
回复
肯定错呀,主键不能重复呀,你可以先获取要注册的学号,然后再在数据库里找有没有相同的学号,如果有相同那就提示已经有人注册了,没有的话就保存这个学生信息
zdb458707957 2015-03-16
  • 打赏
  • 举报
回复
报错提示:Duplicate key or integrity constraint violation message from server: "Duplicate entry '1' for key 'PRIMARY'"

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧