• 《Spring2.0技术手册》读书笔记八Spring与Hibernate整合


    本书写了一个常用的Spring整合Hibernate的方法,主要修改spring的xml配置文件

    Hibernate的连接、事务管理等都是由建立SessionFactory开始的,SessionFactory在应用程序中通常只需存在一个实例,因而SessionFactory底层的DataSource可使用spring的IOC注入,之后再把SessionFactory注入到相依赖的对象之中。

    <beans>
    	<!-- 数据源配置 -->
    	<bean id="dataSource" 
    		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    		<property name="url" value="jdbc:mysql://localhost:3306/demo"/>
    		<property name="username" value=""/>
    		<property name="password" value=""/>
    	</bean>
    	
    	<!-- SessionFactory of Hibernate -->
    	<bean id="sessionFactory"
    		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
    		destroy-method="close">
    		<property name="dataSource" ref="dataSource"/>
    		<!-- 映射文件 -->
    		<property name="mappingResources">
    			<list>
    				<value>User.hbm.xml</value>
    				<value>Product.hbm.xml</value>
    			</list>
    		</property>
    		<!--
    		<property name="mappingDirectoryLocations">
    			<list>
    				<value>classpath:/com/test</value>
    			</list>
    		</property> 
    		 -->
    		<!-- 指定数据库类型 -->
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">
    					org.hibernate.dialect.MySQLDialect
    				</prop>
    			</props>
    		</property>
    	</bean>
    	
    	<!-- 使用举例,对DAO类注入sessionFactory -->
    	<bean id="userDAO" class="com.test.UserDAO">
    		<property name="sessionFactor" ref="sessionFactory"/>
    	</bean>
    </beans>

    整合的好处,可以直接将DataSource注入至LocalSessionFactoryBean中,至于Hibernate所需的相关设置,则可通过LocalSessionFactory相关属性来设置。省略了hibernate.cfg.xml文件。映射文件(指定对象与其关联的表格)的位置与名称指定在mappingResources中。使用mappingDirectoryLocations属性,可以一次性指定某路径下得所有.hbm.xml文件

    补:如果想保留hibernate.cfg.xml,可以将hibernate的配置单独放在该文件中,在applicationContext.xml中引用该文件。如下:

    <bean id="sessionFactory"  
      class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
      <property name="configLocation">  
       <value>classpath:hibernate.cfg.xml</value>  
      </property>  
     </bean> 

    补充:spring运用在web应用中,只需修改web.xml,添加spring的配置文件及监听器即可。

    <context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>/WEB-INF/applicationContext*.xml</param-value>
    </context-param>
    <listener>
    	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
  • 相关阅读:
    tomcat使用入门
    IDEA2020 创建springboot项目提示程序包org.springframework.boot不存在 问题
    jvm内存泄露
    tomcat 上设置可以直接访问的图片路径
    服务器上安装mysql后开启远程连接
    图的遍历,BFS和DFS的Java实现
    并查集
    深度优先搜索实现拓扑排序(leetcode210课程表)
    在Java中怎么实现字符'a'转成字符'b'
    MyBatis底层原理
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982078.html
Copyright © 2020-2023  润新知