spring+JDBC
spring提供了对DAO层统一异常的处理
spring提供了一些抽象类来支持对DAO的编写
减少了对JDBC编写的代码量
Spring用一种方式使用各种数据访问技术:如:Hibernate、JDBC、MyBatis等
需要相关jar包:spring-core-3.2.8. RELEASE.jar;spring-context-3.2.8.RELEASE.jar;srping-beans-3.2.8.RELEASE.jar;spring-expression-3.2.8.RELEASE.jar;spring-jdbc-3.2.8.RELEASE.jar;spring-tx-3.2.8.RELEASE.jar;spring-webMVC-3.2.8.RELEASE.jar;commons-collections-3.1.jar;commons-logging.jar;commons-dbcp-1.2.2.jar;commons-pool.jar;
spring对DAO的异常处理
Spring把特定的异常转换为自己的异常类型,这些异常类型以DataAccessException为父类
DataAccessException继承于RuntimeException,是非检查异常
异常必须处理,可以用拦截器或者在界面统一处理
spring对DAO编写的支持
spring提供一套抽象的DAO类,这些类提供了一些获得与数据访问技术相关的数据源和其他配置信息的方法
JdbcTemplate:封装了常用JDBC方法
HibernateTemplate:封装hibernate常用的方法
JdbcDaoSupport:JDBC数据访问对象的基类
HibernateDaoSupport:hibernate数据访问对象的基类
使用JDBC技术
JdbcDaoSupport是用JDBC技术编写DAO的父类,通过该类可以获取Connection和JdbcTemplate
使用JdbcDaoSupport需要注入一个DataSource对象,但是它对代码有一定的侵入性
JdbcTemplate提供的主要方法:queryForInt()【不建议使用】、queryForObject()、query()、update()、execute()。
使用JDBC编写DAO组件的方法
1:DAO继承JdbcDaoSupport,通过getJdbcTemplate()获取JdbcTemplate对象,同时需要注入DataSource来完成对JdbcTemplate的实例化
2:DAO不继承JdbcDaoSupport,在Spring容器中配置一个JdbcTemplate的bean,然后注入DAO的实现类中
public class JdbcPersonDao implements PersonDao{
private JdbcTemplate template;
//这里可以使用注解和配置,本次试用配置bean方式注入
public void setTemplate(JdbcTemplate template){
this.template = template;
}
public void add(Person person){
String insertSql = "insert into ..";
Object[] params = {person.getName(),person.getID,person.get};
template.update(sql,params);
}
}