hibernateDaoSupport和JdbcDaoSupport的使用

本文介绍了Spring框架中用于数据库访问的两种工具类:HibernateDaoSupport和JdbcDaoSupport的使用方法。通过配置SessionFactory并利用其生成的HibernateTemplate或JdbcTemplate进行增删改查操作,实现简化数据库访问过程。重点比较了两者在使用上的差异,包括语言查询方式和性能优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.HibernateDaoSupport的使用:

 

一、HibernateDaoSupport是Spring为Hibernate的DAO提供工具类。此类主要提供了两个方法:
1. public final HibernateTemplate getHibernateTemplate()
2. public final void setSessionFactory(SessionFactory sessionFactory)

其中,setSessionFactory方法接收来自Spring的applicationContext的依赖注入,接收了配置在Spring中的 SessionFactory实例,getHibernateTemplate方法用来利用刚才的SessionFactory生成Session,再生成HibernateTemplate来完成数据库的访问。

 

二. 一个小例子:

 

 

配置文件:

 

这个过程中,其实DAO的实现依然借助了HibernateTemplate的模板访问方式。只是,HibernateDaoSupport将依赖注入 SessionFactory的工作已经完成,获取HibernateTemplate的工作也已经完成。注意,这种方法须在Spring的配置文件中配置SessionFactory。

在继承HibrnateDaoSupport的DAO实现里,Hibernate Session的管理完全不需要Hibernate代码打开,而由Spring来管理。Spring会根据实际的操作,采用“每次事务打开一次 session”的策略,自动提高数据库访问的性能。

 

2. JdbcDaoSupport的使用:

 

借助这个类不需要HIbernate框架,也不需要有ORM的对象关联映射。但它和HibernateDaoSupport很类似,有JdbcTemplate来实现增、删、改、查操作。

TestA.java:
public class TestA extends JdbcDaoSupport{
    public void test(){
        int n = this.getJdbcTemplate().queryForInt("select max(userid) from User");
        System.out.println(n);
    }
 public static void main(String[] args) {
  ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
  TestA ta = (TestA)ctx.getBean("testa");
        ta.test();
 }
}

需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入DataSource,如下:
applicationContext.xml:
        <bean id="testa" class="com.sun.demo.TestA">
        <property name="dataSource">
        <ref bean="myDataSource"/>
        </property>
        </bean>

*******************************************************************************

 

其中还有点区别就是: HibernateDaoSupport是使用HQL语言来查询的,而JdbcDaoSupport则是使用SQL来查询,可以

更加简单方便的使用我们平常的SQL来操作数据库。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值