`
huibin
  • 浏览: 750759 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Spring中HibernateDaoSupport和JdbcDaoSupport的使用

阅读更多

使用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来完成数据库的访问。

二、一个典型的继承HibernateDaoSupport的DAO如下:

public class TestB extends HibernateDaoSupport{
        public void test1() {
                List list = getHibernateTemplate().find("from Userinfo");
                System.out.println(list.size());
        }
       
        public static void main(String[] args) {
                ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
                TestB t = (TestB) ac.getBean("testb");
                t.test1();
        }
}


相应的Spring的applicationContext.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
        <bean id="mySessionFaction"
                class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                <property name="dataSource">
                        <ref bean="myDataSourse" />
                </property>
                <property name="hibernateProperties">
                        <props>
                                <prop key="hibernate.dialect">
                                        org.hibernate.dialect.MySQLDialect
                                </prop>
                        </props>
                </property>
                <property name="mappingResources">
                        <list>
                                <value>com/ori/demo/Userinfo.hbm.xml</value></list>
                </property>
</bean>
    <bean id="testb" class="com.ori.demo.TestB">
                <property name="sessionFactory">
<ref bean="mySessionFaction"/>
                </property>
</bean>
</beans>

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

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

------------------------------------------------------------------------------------------------------------------------------------------------
使用JdbcDaoSupport
一、        下面一个例子通过例子来说明JdbcDaoSupport的使用:
写一个测试类(TestD):

public class TestD extends JdbcDaoSupport {
        public void test() {
                int count = this.getJdbcTemplate().queryForInt("select count(*) from userinfo");
                System.out.println(count);
        }
        public static void main(String[] args) {
                ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
                TestD t = (TestD) ac.getBean("testd");
                t.test();
        }
}


相应的Spring的applicationContext.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
        <bean id="myDataSourse"
                class="org.apache.commons.dbcp.BasicDataSource">
                <property name="driverClassName"
                        value="com.mysql.jdbc.Driver">
                </property>
                <property name="url"
                        value="jdbc:mysql://localhost:3306/test">
                </property>
                <property name="username" value="root"></property>
                <property name="password" value="root"></property>
        </bean>
        <bean id="testd" class="com.ori.demo.TestD">
                <property name="dataSource">
<ref bean="myDataSourse"/>
                </property>
        </bean>
</beans>

分享到:
评论

相关推荐

    HibernateDaoSupport与JdbcDaoSupport

    综上所述,`HibernateDaoSupport`和`JdbcDaoSupport`为Spring框架中的数据库操作提供了便利的支持。选择哪一种支持类取决于项目的具体需求和技术栈的选择。如果项目已经采用了Hibernate作为持久层框架,则推荐使用`...

    Spring持久化模板总结

    本文将深入探讨Spring对JDBCTemplate和HibernateTemplate的整合使用方法,以及JdbcDaoSupport和HibernateDaoSupport的支持。 **JdbcTemplate** JdbcTemplate是Spring提供的一个简单、灵活且强大的JDBC抽象层。它...

    spring和数据库层的结合

    3. **自动注入与便利获取**:Spring同样提供了`HibernateDaoSupport`等支持类,这些类可以自动注入数据源和SessionFactory,并且提供了一个便捷的方法来获取`HibernateTemplate`对象。这使得开发过程更加高效。 ###...

    hibernate和spring技术难点及其要点总结

    1. **HibernateDaoSupport与JdbcDaoSupport**:Spring提供了这些支持类来简化DAO(数据访问对象)的实现,两者分别用于Hibernate和JDBC操作。它们提供了事务管理和数据源的便捷接入。 **三、Hibernate的查询方式** ...

    java之hibernate和spring技术难点及其要点总结

    1. **HibernateDaoSupport与JdbcDaoSupport**:`HibernateDaoSupport`是Spring提供的用于简化Hibernate使用的抽象支持类,它提供了`SessionFactory`等资源的注入,简化了Hibernate的使用过程。而`JdbcDaoSupport`则...

    Jdbcsupport培训 详细讲解jdbcsupport

    Spring对DAO的支持体现在提供了一系列的基类,如HibernateDaoSupport、JdbcDaoSupport、SqlMapClientDAOSupport和JpaDaoSupport等。这些基类为不同ORM框架的使用提供了便利。其中,JdbcDaoSupport是针对JDBC操作进行...

    spring 对dao 的操作

    对于Hibernate,Spring提供`HibernateTemplate`和`HibernateDaoSupport`,它们封装了Hibernate的操作,使得开发者可以专注于业务逻辑,而不是底层的SessionFactory和Session管理。例如,我们可以在DAO中注入`...

    spring3.x的读书笔记-5

    此外,Spring还为其他持久化技术如Hibernate提供了类似的模板类`HibernateTemplate`,以及对应的DAO支持类,如`JdbcDaoSupport`和`HibernateDaoSupport`,这些支持类负责初始化模板对象并提供数据资源。 在数据源...

    spring学习的第三天

    Spring为开发者提供了两种常用的数据访问模板,分别是`JdbcTemplate`和`HibernateTemplate`。 - **JdbcTemplate** - **特点**: - 封装了JDBC的核心API,如获取连接、创建语句、执行SQL等,大大简化了开发人员的...

    pring对JDBC和orm的支持共10页.pdf.zip

    这使得MyBatis的Mapper接口可以直接在Spring环境中使用,同时也支持事务管理和结果映射。 6. **DataSource配置**:Spring提供了多种数据源配置选项,如BasicDataSource、SingleConnectionDataSource等,可以根据...

    Java的Spring框架中DAO数据访问对象的使用示例

    在本示例中,我们将探讨Spring如何与JDBC和Hibernate一起使用DAO。 首先,Spring的`JdbcDaoSupport`是为JDBC数据访问对象提供的基类。它需要一个`DataSource`,并为子类提供了一个`JdbcTemplate`实例,使得开发者...

    SPRING API 2.0.CHM

    JdbcDaoSupport JdbcOperations JdbcTemplate JdbcTransactionObjectSupport JdbcUpdateAffectedIncorrectNumberOfRowsException JdbcUtils JdkDynamicAopProxy JdkRegexpMethodPointcut JdkVersion ...

Global site tag (gtag.js) - Google Analytics