@desc API 統一返回狀態碼 /* 用戶錯誤:20001-29999*/ USER_HAS_EXISTED(20005, “用戶已存在”),
沒有合適的MySQL JDBC驅動 No suitable driver found for localhost
Mybatis不鼓勵捕捉異常,但在某些特定場景下需要捕捉,這個時候通過try catch是捕捉不到的,mybatis有自己的處理方式,它把異常映射成了DataAccessException,那麼我們需要拋出異常並捕捉。
賬號列表修改爲已存在的賬號時報錯,初步解決方案try {
managerUserService.updateByPrimaryKeySelective(managerUser);
} catch (Exception e) {
throw new BusinessException(ResultCode.DATA_IS_WRONG);
}
加個判斷,在前端提示,沒有合適的MySQL JDBC驅動 尚未解決
Class.forName(“com.mysql.cj.jdbc.Driver”); //加載數據庫驅動
String DB_URL = “localhost:3306/background?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&verifyServerCertificate=false&autoReconnct=true&autoReconnectForPools=true&allowMultiQueries=true”;
String USER = “root”; //數據庫賬號
String PASS = “mxy”; //數據庫密碼
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); //建立連接
Statement stmt = conn.createStatement();
String sql = “SELECT user_name FROM citizen-app.manager_user where user_name = '”+updateManagerUser.userName+"’";
ResultSet rs = stmt.executeQuery(sql); //執行語句
if (updateManagerUser.userName.equals(sql)) {
throw new BusinessException(ResultCode.USER_HAS_EXISTED); //拋出異常
}
try {
managerUserService.updateByPrimaryKeySelective(managerUser);
} catch (Exception e) {
if (managerUserService.getUserName(updateManagerUser.userName).getList().get(0).getUserName().equals(updateManagerUser.userName)) {
try {
managerUserService.updateByPrimaryKeySelective(managerUser);
} catch (Exception a) {
throw new BusinessException(ResultCode.USER_HAS_EXISTED);//賬號已存在
}
} else {
throw new BusinessException(ResultCode.DATA_IS_WRONG);
}
} finally {
}
}
if (!managerUserService.getUserName(updateManagerUser.userName).equals("[]")) { //判斷賬號已存在
throw new BusinessException(ResultCode.USER_HAS_EXISTED);//賬號已存在
}
managerUserService.updateByPrimaryKeySelective(managerUser); //不重複的時候
List getUserName(String userName);
@Override
public List getUserName(String userName) {
List list = managerUserMapper.getUserName(userName);
return list;
}
List<ManagerUser> getUserName(@Param("userName") String userName);
<select id="getUserName" resultMap="ManagerUserListResultMap">
select
mu.user_name
from manager_user mu
<where>
<if test="userName!=null">
mu.user_name = '${userName}'
</if>
</where>
</select>
</mapper>