首页 > 代码库 > Spring4的学习(三)

Spring4的学习(三)

1.Spring4整合Hibernate4整合什么?

         1). 有 IOC 容器来管理 Hibernate 的 SessionFactory
    2). 让 Hibernate 使用上 Spring 的声明式事务



2. 整合步骤:


1). 加入 hibernate
①. jar 包
②. 添加 hibernate 的配置文件: hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN">

-<hibernate-configuration>


-<session-factory>

<!-- 配置 hibernate 的基本属性 -->


<!-- 1. 数据源需配置到 IOC 容器中, 所以在此处不再需要配置数据源 -->


<!-- 2. 关联的 .hbm.xml 也在 IOC 容器配置 SessionFactory 实例时在进行配置 -->


<!-- 3. 配置 hibernate 的基本属性: 方言, SQL 显示及格式化, 生成数据表的策略以及二级缓存等. -->


<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

<property name="hibernate.show_sql">true</property>

<property name="hibernate.format_sql">true</property>

<property name="hibernate.hbm2ddl.auto">update</property>

<!-- 配置 hibernate 二级缓存相关的属性. -->


</session-factory>

</hibernate-configuration>



③. 编写了持久化类对应的 .hbm.xml 文件。 

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN">

-<hibernate-mapping>


-<class table="SH_BOOK" name="com.atguigu.spring.hibernate.entities.Book">


-<id name="id" type="java.lang.Integer">

<column name="ID"/>

<generator class="native"/>

</id>


-<property name="bookName" type="java.lang.String">

<column name="BOOK_NAME"/>

</property>


-<property name="isbn" type="java.lang.String">

<column name="ISBN"/>

</property>


-<property name="price" type="int">

<column name="PRICE"/>

</property>


-<property name="stock" type="int">

<column name="STOCK"/>

</property>

</class>

</hibernate-mapping>




2). 加入 Spring
①. jar 包
②. 加入 Spring 的配置文件

<?xml version="1.0" encoding="UTF-8"?>

-<beans xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans">

<!-- 配置自动扫描的包 -->


<context:component-scan base-package="com.atguigu.spring.hibernate"/>

<!-- 配置数据源 -->


<!-- 导入资源文件 -->


<context:property-placeholder location="classpath:db.properties"/>


-<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">

<property value=http://www.mamicode.com/"${jdbc.user}" name="user"/>>
外部属性文件db.properties

jdbc.user=root
jdbc.password=1230
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///spring7

jdbc.initPoolSize=5
jdbc.maxPoolSize=10
#...




3). 整合.


3. 编写代码