关于DAO中add方法异常抛出的说明
来源:互联网 发布:js 函数的argument 编辑:程序博客网 时间:2024/04/26 21:21
对于DAO中add方法抛出ObjectAlreadyExistException异常的处理办法:
1、如果是因为主键冲突而需要抛出ObjectAlreadyExistException就直接执行executeUpdate方法,然后在catch(SQLException e)中根据e.getErrorCode()的返回值判断是否要抛出ObjectAlreadyExistException,此处为DB2,则判断“-803”,此变量在com.cvicse.pub.common.CommonArgument中。
2、如果是因为业务原因要控制非主键不能重复,那就必须在add方法中调用相应的方法查询,根据查询的结果抛出ObjectAlreadyExistException异常
注意:add方法不能根据executeUpdate方法的返回值是0,来抛出ObjectAlreadyExistException异常,故相关的if判断去掉。
示例代码:(红色字去掉不要)
try {
String addSql = "";
Connection conn = DBDataSource.getNwwConnect();
Statement stmt = conn.createStatement();
int count = stmt.executeUpdate(addSql);
if (count == 0) { // 如果对象已经存在
throw new ObjectAlreadyExistException(
"articlefeePO identified by " + articlefeePO.getId() + " has already existed");
}
} catch (SQLException sqlEx) {
if(sqlEx.getErrorCode() ==CommonArgument.ALREADYEXIST_CODE){
throw new ObjectAlreadyExistException(sqlEx);
}
throw new DataAccessException(sqlEx);
}
- 关于DAO中add方法异常抛出的说明
- 抛出异常的方法
- 关于UDP消息服务抛出“远程主机强迫关闭了一个现有的连接”的异常说明及处理方法
- 关于spring中抛出NotWritablePropertyException异常的问题
- Java中关于try{}catch{}抛出异常的一个例子
- 关于spring中@Transactional注解抛出异常不回滚的现象
- Python raise 抛出异常的说明
- 在继承中重写方法时抛出异常的问题
- 解决Servlet程序中this.getServletContext()抛出异常的方法
- 在继承中重写方法时抛出异常的问题
- spring事务控制的方法中抛出异常不回滚
- 在继承中重写方法时抛出异常的问题
- 在继承中重写方法时抛出异常的问题
- 在继承中重写方法时抛出异常的问题
- 在继承中重写方法时抛出异常的问题
- java中重写方法必须抛出和原方法一样的异常或者不抛异常
- 在指定方法中抛出异常,在调用该方法的地方处理异常
- 继承后方法抛出异常的问题
- [转]攸关全局 CIO如何把脉项目验收关
- 心雨
- Microsoft Office 2007 换号方法:
- ftp的两种工作模式
- java笔试必备的基础知识总结
- 关于DAO中add方法异常抛出的说明
- 关于路径搜寻的问题!为何不执行目前所在目录下的档案?
- java exception java异常汇总2009-11-18
- java exception java异常汇总2009-11-18
- 布线工程师谈PCB设计!
- Tomcat5的数据库连接池配置
- Your Uninstaller 2008 软件介绍及注册码
- November 19th Thursday
- Reading Notes on NS2(10)