Spring框架中HibernateDaoSupport与JdbcDaoSupport的使用总结

需积分: 13 3 下载量 66 浏览量 更新于2024-09-13 收藏 41KB DOC 举报
"SSH连接池与HibernateDaoSupport与JdbcDaoSupport是两个不同的概念,SSH连接池通常指的是Spring、Struts和Hibernate三个框架中对于数据库连接的管理,而HibernateDaoSupport和JdbcDaoSupport是Spring框架提供的支持DAO层操作的抽象基类。本文将主要讨论这两个 Dao 支持类在Spring框架中的使用方法。 一、HibernateDaoSupport的使用 HibernateDaoSupport 是Spring为了简化Hibernate操作而设计的一个抽象基类。如果项目中使用了Hibernate作为持久层框架,可以通过继承HibernateDaoSupport来获取对HibernateTemplate的便捷访问。HibernateTemplate是一个方便的工具类,它封装了对Hibernate Session的操作,包括事务处理和异常转换。以下是一个简单的示例: ```java public class TestA extends HibernateDaoSupport { public void test() { HibernateTemplate template = this.getHibernateTemplate(); List<User> list = template.find("from User"); for (int i = 0; i < list.size(); i++) { User u = list.get(i); System.out.println(u.getUserid() + "" + u.getEmail()); } } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestA t = (TestA) ctx.getBean("testa"); t.test(); } } ``` 在Spring配置文件`applicationContext.xml`中,需要注入SessionFactory到HibernateDaoSupport的子类中: ```xml <bean id="testa" class="com.sun.demo.TestA"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> ``` 二、JdbcDaoSupport的使用 与HibernateDaoSupport不同,JdbcDaoSupport是为使用JDBC操作数据库提供支持的抽象基类。如果项目不依赖Hibernate,而是直接使用JDBC,那么可以继承JdbcDaoSupport来获取JdbcTemplate的实例。JdbcTemplate提供了对JDBC操作的简化,例如自动处理SQL执行和结果映射。下面是一个简单的例子: ```java public class TestB extends JdbcDaoSupport { public void test() { JdbcTemplate jdbcTemplate = getJdbcTemplate(); List<User> list = jdbcTemplate.query( "SELECT * FROM user", new RowMapper<User>() { @Override public User mapRow(ResultSet rs, int rowNum) throws SQLException { User user = new User(); // Map ResultSet to User object return user; } }); for (User u : list) { System.out.println(u.getUserid() + "" + u.getEmail()); } } } ``` 同样,也需要在`applicationContext.xml`中配置DataSource,以便JdbcDaoSupport的子类能够访问数据库: ```xml <bean id="testb" class="com.sun.demo.TestB"> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <!-- Configure your DataSource properties here --> </bean> ``` 总结来说,HibernateDaoSupport适用于使用Hibernate的项目,提供了对HibernateTemplate的便捷访问,而JdbcDaoSupport则适用于基于JDBC操作数据库的场景,通过JdbcTemplate提供了一种更安全、更易用的数据库访问方式。这两个类都极大地简化了DAO层的开发工作,让开发者能够专注于业务逻辑而不是底层的数据库操作。"