在已有spring的基礎(chǔ)上集成hibernate的實(shí)例講解
1.導(dǎo)入hibernate的包和spring的包
hibernate3、hibernate-jpa-2.0-api-、必須的包,log4j,log4j配置文件
1.1 導(dǎo)入Spring的依賴包
1.2 導(dǎo)入log4j的依賴包
1.3 導(dǎo)入dbcp的依賴包
1.4 導(dǎo)入hibernate3的依賴包(hibernate3.jar、require文件中的所有,sif4-api.jar,jpa文件夾中的包)
2.創(chuàng)建applicationContext.xml
2.1 使用DBCP創(chuàng)建dataSource(和集成JDBP一樣)
<!-- 配置數(shù)據(jù)源 --> <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/spring_teach"/> <property name="username" value="root"/> <property name="password" value="111111"/> </bean>
2.2 創(chuàng)建hibernate的sessionFactory
<!-- 配置 Hibernate 的 SessionFactory 實(shí)例: 通過 Spring 提供的 LocalSessionFactoryBean 進(jìn)行配置 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <!-- 配置數(shù)據(jù)源屬性 --> <property name="dataSource" ref="dataSource"></property> <!-- 配置 hibernate 配置文件的位置及名稱 --> <property name="hibernateProperties" value="classpath:hibernate.cfg.xml"></property> <!-- 配置 hibernate 映射文件的位置及名稱, 可以使用通配符 --> <property name="packagesToScan" value="classpath:org/zttc/itat/model/*.hbm.xml"></property> </bean>
其中 hibernate.cfg.xml,其上有引用:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 配置hibernate基本信息 --> <!-- 1.數(shù)據(jù)源配置在IOC容器中,此處不需要額外配置 --> <!-- 2.關(guān)聯(lián)的.hbm.xml文件也在IOC容器配置SessionFactory時(shí)配置 --> <!-- 3.此處配置hibernate的基本信息:數(shù)據(jù)庫方言、SQL顯示及格式化,及生成數(shù)據(jù)表的策略,二級(jí)緩存等 --> <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> </session-factory> </hibernate-configuration>
3. 為實(shí)體類添加annotation或hbm文件
4.創(chuàng)建基于hibernate的DAO
4.1 在相應(yīng)的DAO注入相應(yīng)的SessionFactory
4.2 如果通過spring來管理相應(yīng)的SessionFactory,不再使用factory.openSession(),而應(yīng)該是factory.getCurrentSession()來打開session,這個(gè)session就會(huì)被spring管理。
5. 配置spring事務(wù)處理
<!-- 配置 Spring 的聲明式事務(wù) --> <!-- 1. 配置事務(wù)管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 2. 配置事務(wù)屬性, 需要事務(wù)管理器 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!--<tx:method name="get*" read-only="true"/> --> <!--<tx:method name="purchase" propagation="REQUIRES_NEW"/> --> <!-- 讓所有方法都加入事務(wù)管理 --> <tx:method name="*"/> </tx:attributes> </tx:advice> <!-- 3. 配置事務(wù)切點(diǎn), 并把切點(diǎn)和事務(wù)屬性關(guān)聯(lián)起來 --> <aop:config> <!-- 設(shè)置poincut表示哪些方法要加入事務(wù)處理 --> <aop:pointcut expression="execution(* org.zttc.itat.dao.*.*(..))" id="allMethods"/> <!-- 通過advisor來確定具體要加入事務(wù)控制的方法 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="allMethods"/> </aop:config>
以上這篇在已有spring的基礎(chǔ)上集成hibernate的實(shí)例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 基于Spire.Cloud.SDK for Java在PDF中繪制形狀
這篇文章主要介紹了Java 基于Spire.Cloud.SDK for Java在PDF中繪制形狀,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07詳解SpringBoot?Start組件開發(fā)之記錄接口日志信息
這篇文章主要為大家介紹了SpringBoot-Start組件開發(fā)之記錄接口日志信息詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04SpringBoot Security安裝配置及Thymeleaf整合
這篇文章主要介紹了SpringBoot Security安裝配置及Thymeleaf整合,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12Java使用@EnableEurekaServer實(shí)現(xiàn)自動(dòng)裝配詳解
這篇文章主要介紹了Java使用@EnableEurekaServer實(shí)現(xiàn)自動(dòng)裝配過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10Springmvc工程跳轉(zhuǎn)controller無效的解決
這篇文章主要介紹了Springmvc工程跳轉(zhuǎn)controller無效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java實(shí)現(xiàn)在線編輯預(yù)覽office文檔詳解
PageOffice是一款在線的office編輯軟件,幫助Web應(yīng)用系統(tǒng)或Web網(wǎng)站實(shí)現(xiàn)用戶在線編輯Word、Excel、PowerPoint文檔,下面我們就來看看如何使用Java實(shí)現(xiàn)在線預(yù)覽office吧2024-01-01