关于Spring的数据访问---Hibernate

首先我们来回忆下使用Hibernate API 创建SessionFactory的过程。

1)创建好对象关系映射文件xxx.hbm.xml   

2)通过Hibernate配置文件hibernate.cfg.xml将所有的xxx.hbm.xml 映射文件组装起来

3)通过读取Hibernate配置文件得到SessionFactory的实例

Configuration config = new Configuration().configure("xxx.cfg.xml");
SessionFactory sessionFactory = config.buildSessionFactory(); 

不妨来看下例子:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration
     PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--数据源-->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
<property name="connection.url">jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=数据库名</property>
<property name="connection.username">用户名</property>
<property name="connection.password">密码</property> <!--属性--> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="use_sql_comments">true</property> <!--对象关系映射文件--> <mapping resource="com/bbs/domain/user.hbm.xml"/>
<mapping resource="com/bbs/domain/book.hbm.xml"/> </session-factory> </hibernate-configuration>

现在我们要写出更具有Spring风格的配置,完全抛开hibernate.cfg.xml配置文件,在applicationContext.xml中利用LocalSessionFactoryBean来达到相同目的。代码如下:

    <!--1.引入定义jdbc连接的属性文件 -->
    <context:property-placeholder location="classpath:jdbc.properties" />
    <!--2.配置数据源 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClass" value="${jdbc.driver}" />  <!--数据库连接驱动 -->
        <property name="jdbcUrl" value="${jdbc.url}" />     <!--数据库地址 -->
        <property name="user" value="${jdbc.username}" />   <!--用户名 -->
        <property name="password" value="${jdbc.password}" />   <!--密码 -->
    </bean>
    <!--3.配置Hibernate的session工厂 -->
    <bean id="sessionFactory"                      
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" /><!--数据源-->
        <property name="packagesToScan" value="com.**" /><!-- 扫描并加载基于JPA注解PO类目录(此目录下所有带注解的实体类) -->
        <property name="hibernateProperties"><!-- 指定Hibernate的属性信息 -->
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
                <prop key="hibernate.show_sql">true</prop>    
            </props>
        </property>
        <!--加载实体类的映射文件位置及名称 -->
        <property name="mappingLocations" value="classpath:config:/*.hbm.xml"></property>
    </bean>

注意:mappingLocations属性的类型是Resource[],   mappingJarLocations则用于映射文件在JAR文件中,   mappingDirectoryLocations则用于放了很多映射文件的的目录,mappingResources通过相对于类路径的方式指定映射文件,属性类型为String[],

 

 

 

 

 

 

 

posted on 2018-01-22 09:36  米虫爱喝咖啡  阅读(125)  评论(0编辑  收藏  举报

导航