數據庫唯一性約束異常插入處理


數據庫

CREATE TABLE `auth_role` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
    `rolename` VARCHAR(50) NULL DEFAULT NULL COMMENT '角色名稱',
    `adduser` INT(11) NULL DEFAULT NULL COMMENT '添加人',
    `addtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加時間',
    PRIMARY KEY (`id`),
    UNIQUE INDEX `rolename` (`rolename`)
)COMMENT='統一平台角色'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
ROW_FORMAT=COMPACT
AUTO_INCREMENT=15;

Controller

    @RequestMapping(value="/insertSelective",method={RequestMethod.GET,RequestMethod.POST})
    @ResponseBody
    public Object insertSelective(Auth_role record,HttpSession session){
        Userinfo sessionUserinfo = (Userinfo)session.getAttribute("CURR_USER");
        String sessionuserid = sessionUserinfo.getUserid().toString();
        record.setAdduser(Integer.parseInt(sessionuserid));
Map map
= new HashMap(); int result = 0; /*異常處理*/ try { result = service.insertSelective(record); }catch (org.springframework.dao.DuplicateKeyException e){ /*異常處理截獲流程,如果是存在DuplicateKeyException則是重名,直接返回到前端,id主鍵為自增長,不會重復*/ map.put("code", "fail"); map.put("msg", "該角色名已存在!"); return map; } /*正常返回流程*/ if (result == 1) { map.put("code", "success"); map.put("msg", CN_MessageEnum.AddSuccess.getName()); }else { map.put("code", "fail"); map.put("msg", CN_MessageEnum.AddFailed.getName()); } return map; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM