mybatis捕捉异常
来源:互联网 发布:mysql可以没有主键吗 编辑:程序博客网 时间:2024/06/05 01:18
mybatis不鼓励捕捉异常,但在某些特定场景下需要捕捉,这个时候通过try catch是捕捉不到的,mybatis有自己的处理方式,它把异常映射成了DataAccessException,那么我们需要抛出异常并捕捉
下面是一个可行的实现方法:
在mapper对需要捕捉异常接口抛出DataAccessException:
package com.xxx.mybatis.persistence;
import org.springframework.dao.DataAccessException;
import com.xxx.mybatis.domain.Member;
public interface MemberMapper {
void insertMember(Member member) throws DataAccessException;
Member getMemberByEmail(String email);
}
然后在service也抛出异常:
public void insertMember(Member member) throws DataAccessException
{
memberMapper.insertMember(member);
}
在controller里边捕捉异常并getcause处理:
try {
memberService.insertMember(member);
} catch (DataAccessException e) {
final Throwable cause = e.getCause();
if( cause instanceof MySQLIntegrityConstraintViolationException )
{
registerResponse.setDescription("duplicate email");
registerResponse.setReturncode(601);
return registerResponse;
}
}
package com.xxx.mybatis.persistence;
import org.springframework.dao.DataAccessException;
import com.xxx.mybatis.domain.Member;
public interface MemberMapper {
void insertMember(Member member) throws DataAccessException;
Member getMemberByEmail(String email);
}
然后在service也抛出异常:
public void insertMember(Member member) throws DataAccessException
{
memberMapper.insertMember(member);
}
在controller里边捕捉异常并getcause处理:
try {
memberService.insertMember(member);
} catch (DataAccessException e) {
final Throwable cause = e.getCause();
if( cause instanceof MySQLIntegrityConstraintViolationException )
{
registerResponse.setDescription("duplicate email");
registerResponse.setReturncode(601);
return registerResponse;
}
}
阅读全文
0 0
- mybatis捕捉异常
- mybatis捕捉异常
- 异常捕捉
- 异常捕捉
- 捕捉异常
- 异常捕捉
- 捕捉异常
- 异常捕捉
- springmvc mybatis 声明式事务管理回滚失效,(checked回滚)捕捉异常,传输错误信息
- 捕捉异常 (Visual C#)
- delphi异常信息捕捉
- 捕捉线程的异常
- 异常捕捉工具[转]
- 进程异常的捕捉
- 什么时候该捕捉异常
- 关于捕捉全局异常
- 异常捕捉陷阱
- 未捕捉的异常
- 嵌入式文件系统启动顺序init
- Linux 查看历史命令并执行
- java8 stream
- zookeeper集群之开源客户端ZkClient的使用(四)
- TeamViewer远程唤醒主机实战教程(多图)
- mybatis捕捉异常
- 设计模式:策略模式
- Hadoop伪分布式安装,出现DataNode节点无法正常启动
- dbcp和c3p0的使用
- 内存泄漏检测工具VLD在VS2010中的使用举例
- 7-1 六度空间(30 分)
- 欢迎使用CSDN-markdown编辑器
- 行内元素不换行的处理
- springMVC的适配器模式