• 关于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[],

     

  • 相关阅读:
    AIZU 0005
    Android Studio 1.0 (稳定版) 完全攻略
    android studio中avd sdk路径
    vim强大探究之光标移动
    Android项目打第三方jar包
    Android导出jar包后的资源使用问题
    混淆Android JAR包的方法
    Layout_margn与padding的区别
    Android软件开发之盘点自定义View界面大合集(二)
    Android软件开发之盘点所有Dialog对话框大合集(一)
  • 原文地址:https://www.cnblogs.com/mcahkf/p/8043640.html
Copyright © 2020-2023  润新知