- 浏览: 991536 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
DAO层的异常最好是让上一层知道,这样就可以使上一层知道出错是否还进行下一步操作.
首先看看我们的项目的架构:
Com.mengya.dao.innter接口层(只定义方法):
public void addUser(User user);
public User getUser(int userId);
public User findUser(String loginName, String password);
public void update(User user);
public void delete(User user);
com.mengya.dao.imple DAO的实现
public class UserDaoJdbcImpl implements UserDao {
public void addUser(User user) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
String sql = "insert into user(name,birthday, money) values (?,?,?) ";
ps = conn.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setDate(2, new java.sql.Date(user.getBirthday().getTime()));
ps.setFloat(3, user.getMoney());
ps.executeUpdate();
rs = ps.getGeneratedKeys();
if (rs.next())
user.setId(rs.getInt(1));
} catch (SQLException e) {
throw new DaoException(e.getMessage(), e);
//1,如果这里我们打印异常信息,那么上一层即业务逻辑层就不知道,它
可能以为正常执行了.它可能会按照正确执行再执行下一步的操作.
2,如果这里我们简单的throw e.那么我们的这个方法就要改成:
public class UserDaoJdbcImpl implements UserDao throws
Exceiotn{},这也会导到我们的接口里的方法也要改成方法后面throw 一
个SQLException如果我们的接口的实现也是SQL实现了,并且这里是
CheckException,在我们的业务逻辑层调用时也要用try...catch.这
样的话就改动很大.
所以在这里我们就要用RunctimeException了。上面的问题都可以解决。
第一, 如果有异常上层即业务逻辑层肯定知道.因为这样的话程序出错了.
第二, 不用修改我们定义好了的接口,RunctimeException可以try...catch也可以不.
第三, 在我们业务逻辑层调用的时候也不需要非要try...catch也可以选择不try...catch.
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
//其它方法就不写了...
}
自己定义的异常类,继承于RuntimeExceptin.也没有重写RuntimeException里面的方法,只是简单的一个继承而已.
public class DaoException extends RuntimeException {
private static final long serialVersionUID = 1L;
public DaoException() {
}
public DaoException(String message) {
super(message);
}
public DaoException(Throwable cause) {
super(cause);
}
public DaoException(String message, Throwable cause) {
super(message, cause);
}
}
发表评论
-
高级 DAO 编程 学习编译更好的 DAO 的技巧
2009-04-27 20:09 1642高级 DAO 编程学习编译 ... -
使用Spring的SimpleJdbcTemplate完成DAO操作
2009-04-24 09:35 10118SimpleJdbcTemplate内部包含了一个Name ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30814NamedParameterJdbcTemplate内部包含了 ... -
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
2009-04-23 16:55 10711先道要加上两个包:Spring2.5下面的: spring.j ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1540核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1338核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射实现ORM
2009-04-20 22:55 1459首先Bean在符合JavaBean的要求,即有一个无参的构造方 ... -
使用反射技术调用对象的方法,得到属性,方法等信息
2009-04-20 22:55 2346package com.mengya.test; im ... -
使用反射技术构造对象
2009-04-20 22:54 1611public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1603JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1396JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 21061, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1206隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1520可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1629可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 2004在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ResultSetMetaData的使用
2009-04-20 13:00 2700ResultSetMetaData能够通过ResultSet分 ... -
ParameterMetaData的使用
2009-04-20 12:59 2621ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3051PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1481System.properties配置文件(放在src下面) ...
相关推荐
本篇文章将深入探讨JDBC DAO的设计思想,以及如何结合Service层来构建一个完整的异常处理机制。 首先,理解JDBC DAO的基本概念。DAO模式的主要目标是提供一个接口,使得业务层可以与具体的数据库操作分离。这样,...
在简单的情况下,Service层可能直接调用DAO层的方法,但其主要目的是提供更高层次的抽象,处理业务规则,进行异常处理,并与其他服务或系统进行交互。 在分层架构中,Service层和DAO层的解耦是非常重要的。Spring...
3. DAO层异常原因返回:在数据访问层,常见的异常有SQL查询错误、数据不存在、事务异常等。通过统一异常处理,可以将这些异常转换为自定义的异常,并附带具体的错误信息,如SQL错误码、影响行数等,这样可以清晰地...
6. **异常处理**:为了保证程序的健壮性,DAO层通常会捕获并处理可能抛出的SQLException或其他异常,转换为业务层可以处理的异常类型。 在"myLibrarySys"这个压缩包中,我们可以期待找到上述提到的源代码文件,包括...
5. 异常处理:进行异常捕获和处理,确保数据库操作的健壮性。 然后,"业务层"通常指的是服务层(Service Layer),这是应用程序的核心部分,实现了具体的业务逻辑。在这个层面上,建模工具类可能涉及到服务的注册、...
DAO层的主要任务是提供对数据库的操作接口,包括增删查改等基本操作,同时处理SQL语句的编写、事务管理以及异常处理。通过这种方式,业务层可以专注于业务逻辑,而无需关心底层数据访问的实现。 2. 设计模式 DAO...
在本主题“mvc中dao层反射实现”中,我们将探讨如何利用Java的反射机制来实现DAO层的方法。 反射是Java语言的一个强大特性,它允许程序在运行时动态地获取类的信息并调用其方法。在DAO层中使用反射,可以提高代码的...
7. **异常处理**: 在DAO层捕获和处理Hibernate抛出的异常,如`HibernateException`,并根据业务需求决定是否向上层抛出或转换为自定义异常。 8. **单元测试**: 对DAO层进行充分的单元测试,验证其功能的正确性...
在IT行业中,数据库连接管理是应用系统中至关重要的一环,特别是在高并发环境下,有效地管理和复用数据库连接可以显著...在实际项目中,还需要注意异常处理、事务管理和资源释放等问题,以确保系统的稳定性和安全性。
Service层会调用DAO层的方法来执行数据库操作,并处理可能出现的异常。例如,当用户请求删除一个记录时,Service层会调用DAO的delete方法,并处理可能出现的数据一致性问题。 5. **Oracle数据库**:Oracle是一种高...
5. **异常处理**:在DAO层中,需要妥善处理可能抛出的SQLException和其他运行时异常,确保程序的健壮性。通常会封装成自定义的业务异常,方便上层业务逻辑捕获并处理。 6. **事务管理**:对于涉及多条数据库操作的...
Service层则是业务逻辑处理的中心,它调用DAO层的方法来实现对数据的操作,并且可能涉及到事务管理、异常处理、缓存等高级功能。服务层代码生成通常包括服务接口和服务实现类,服务接口定义了对外提供的业务方法,...
### Java开发DAO层的经典实现详解 #### 一、引言 在Java开发中,DAO(Data Access Object)层是用于处理数据库操作的关键组件之一。它主要负责与数据库进行交互,执行增删改查等基本操作,并将数据封装为实体对象...
本文将深入探讨如何使用代理来实现Hibernate Dao层的自动事务管理,以提高代码的可维护性和事务处理的效率。 首先,理解Dao(Data Access Object)层的作用至关重要。Dao层是应用与数据库之间的一层抽象,它封装了...
- 考虑异常处理,确保程序在遇到错误时能正确回滚事务并给出反馈。 总的来说,DAO层的增删改查和分页查找是Java企业级应用开发的基础,理解并熟练掌握这些操作对于提高应用程序的性能和稳定性至关重要。通过合理的...
Spring Boot 提供了统一的异常处理机制,通过使用 @ControllerAdvice 和 @ExceptionHandler 注解,可以实现对控制器层、Service 层、Dao 层以及 Spring 系统内定义的部分异常的统一处理。 在 Spring Boot 中,可以...
DAO对象封装了SQL语句,处理事务,异常处理等细节,为业务层提供一个干净、简单的API。 **文件Demo** 在给定的压缩包文件"Demo"中,可能包含了实现上述设计模式的相关代码。通常,"Demo"可能包含以下部分: - JSP...
这些工具类提供了异常处理和事务管理,使得数据库操作更加安全和可靠。 2. **通用DAO设计** DAO(Data Access Object)模式是一种常见的设计模式,用于隔离业务逻辑层与数据访问层。在Spring3中,我们可以通过接口...
5. **异常处理** DAO层应捕获并处理可能抛出的数据库相关异常,如`SQLException`,然后将其转换为业务层能理解的异常,如自定义的`DataAccessException`。 6. **查询优化** 对于复杂的查询,DAO层可以利用预编译...
6. **版本控制**:生成的代码应遵循良好的编程实践,如适当的注释、错误处理和异常处理。同时,考虑到代码版本控制,生成的代码应当易于理解和维护。 为了更深入地利用这个工具,开发者需要了解如何配置数据库连接...