1. 程式人生 > >SSH(五)spring整合hibernate

SSH(五)spring整合hibernate

app clas ssp length rip javascrip root odi pooled

一、創建hibernate實體映射文件。

在實體所在包創建映射文件product.hbm.xml,引入hibernate的映射約束。(該約束位於hibernate3.jar裏面hibernate-mapping-3.0.dtd,可cope使用)如下圖:

技術分享

product.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- hibernate約束頭信息:hibernate3.jar→org,hibernate→hibernate-mapping-3.0.dtd -->
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    
<hibernate-mapping>
<!-- name:實體的全路徑  table:映射創建的DBA表名 -->
	<class name="com.ssh.entity.product" table="product">
		<id name="pid" column="pid">
			<!--class="native" 主鍵生成側路:本地策略  -->
			<generator class="native"></generator>
		</id>
		
		<property name="pname" column="pname" length="20"></property>
		<property name="price" column="price"></property>
	</class>
</hibernate-mapping>

二、利用spring引入屬性文件的方式連接數據庫

2.1在項目src下新建dba連接屬性文件jdbc.produce,用來保存數據庫連接的基本參數:

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssh
jdbc.username=root
jdbc.password=123456

2.2在applicationcontext.xml中利用context:property-placeholder標簽引入屬性文件,為連接池準備參數:

        <!-- 引入外部屬性文件 -->
        <context:property-placeholder location="classpath:jdbc.produce"/>

2.3在applicationcontext.xml配置連接池 :利用引入配置文件屬性為連接池賦值

        <!-- 配置連接池  :利用引入配置文件屬性為連接池賦值 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        	<property name="driverClass" value="${jdbc.driverClass}"></property>
        	<property name="jdbcUrl" value="${jdbc.url}"></property>
        	<property name="user" value="${jdbc.username}"></property>
        	<property name="password" value="${jdbc.password}"></property>
        </bean>

2.4在applicationcontext.xml配置hibernate屬性和加載映射文件:

(hibernate方言位置:hibernate-release-5.2.8.Final\project\etc\hibernate.properties)如下圖:

技術分享

applicationcontext.xml配置映射:(註意sessionfactory的hibernate版本的引入,根據自己hibernate版本來)

        <!-- 配置hibernate的相關屬性:spring啟動根據該配置創建映射表 -->
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        	<!-- 註入連接池 -->
        	<property name="dataSource" ref="dataSource"></property>
        	<!-- 配置hibernate屬性 -->
        	<property name="hibernateProperties">
        		<props>
        			<!-- hibernate.dialect:hibernate方言 -->
        			<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
        			<prop key="hibernate.show_sql">true</prop>
        			<prop key="hibernate.format_sql">true</prop>
        			<prop key="hibernate.hbm2ddl.auto">update</prop>
        		</props>
        	</property>
        	<!-- 配置hibernate中的映射文件 -->
        	<property name="mappingResources">
        		<list>
        			<!-- 映射文件全路徑 -->
        			<value>com/ssh/entity/product.hbm.xml</value>
        		</list>
        	</property>
        </bean>

完成以上操作後,在啟動項目時,系統加載初始化spring時加載applicationcontext.xml會自動連接數據庫並根據配置映射在數據庫中創建實體對應的表。

三、啟動項目觀察數據庫

技術分享

運行創建成功!

SSH(五)spring整合hibernate