mysql5.7 hibenate5.1_5.7 Spring与Hibernate整合应用
下面以一個簡單的實例說明Spring與Hibernate的整合策略,步驟如下。
1 在SQL Server 2005中創建數據庫表
數據庫名為XSCJ,表見附錄A的登錄表。
2 創建Web項目
命名為“Hibernate_Spring”
3 添加Spring的開發能力
右擊項目名,選擇【MyEclipse】→【Add Spring Capabilities…】菜單項,將出現如圖5.9所示的對話框,選中要應用的Spring的版本及所需的類庫文件。注意,本書用的Spring版本為Spring 2.0。選擇Spring的核心類庫Spring 2.0 Core Libraries、Spring 2.0 Web Labraries、Spring 2.0 AOP Libraries和Spring 2.0 Persistence JDBC Libraries。
圖5.9? 添加Spring Capabilities
單擊【Next】按鈕,提示是否建立Spring配置文件,在默認情況下選擇application Context.xml文件的存放路徑,選擇在WEB-INF文件夾下,然后單擊【Finish】按鈕,如圖5.10所示。
圖5.10 ?創建applicationContext.xml文件
4 加載Hibernate框架
右擊工程文件,選擇【MyEclipse】→【Add Hibernate Capabilities…】菜單項,出現如圖5.11所示的對話框。選擇Hibernate版本及需要的類庫。
圖5.11? 添加Hibernate庫
單擊【Next】按鈕,出現如圖5.12所示對話框,提示是用Hibernate的配置文件還是用Spring的配置文件進行SessionFactory的配置,選擇使用Spring來對Hibernate進行管理。這樣最后生成的工程中就不包含hibernate.cfg.xml,好處是在一個地方就可以對Hibernate進行管理。
圖5.12? 定義Hibernate配置
單擊【Next】按鈕,出現如圖5.13所示的對話框,提示是創建一個新的Hibernate配置文件還是使用已有的配置文件,由于剛才已經生成了Spring配置文件,并且要在其中進行Hibernate的配置,所以選擇復選框“Existing Spring configuration file”。
圖5.13 ?定義Spring-Hibernate配置
單擊【Next】按鈕,出現如圖5.14所示的對話框,要求選擇數據庫連接信息。這里需要注意一點,Bean Id處填寫數據源的名稱,如“datasource”。數據源的創建請參考4.2.1節中的第2步。
圖5.14 ?指定新的Spring數據源連接信息
單擊【Next】按鈕,出現如圖5.15所示的對話框,提示是否創建SessionFactory類,由于本程序Spring為注入sessionFactory,所以不用創建,單擊【Finish】按鈕。
圖5.15? 定義SessionFactory屬性
5 生成與數據庫表對應的Java數據對象和映射
打開MyEclipse的Database Exploer Perspective,右擊DLB表,選擇Hibernate Reverse Engineering菜單項,如圖5.16所示設置。
圖5.16? Hibernate映射文件和POJO類
單擊【Next】按鈕,在ID generator中選擇native,直接單擊【Finish】按鈕完成。
6 編寫DlDao.java接口
在src文件夾下建立包org.dao,在該包先建立接口,命名為“DlDao”,這里主要以添加用戶為例,代碼如下:
package?org.dao;
import?org.model.Dlb;
public?interface?DlDao?{
public?void?save(Dlb?dl);
}
7 編寫DlDao.java實現類
在src文件夾下建立包org.dao.imp,在該包下建立類,命名為“DlDaoImp”,代碼。
package?org.dao.imp;
import?org.dao.DlDao;
import?org.hibernate.Session;
import?org.hibernate.SessionFactory;
import?org.hibernate.Transaction;
import?org.model.Dlb;
public?class?DlDaoImp?implements?DlDao{
//依賴注入SessionFactory對象,set方法注入
private?SessionFactory?sessionFactory;
public?void?setSessionFactory(SessionFactory?sessionFactory)?{
this.sessionFactory?=?sessionFactory;
}
public?void?save(Dlb?dl)?{
try{
//獲得Session對象
Session?session=sessionFactory.openSession();
Transaction?ts=session.beginTransaction();
session.save(dl);
ts.commit();
}catch(Exception?e){
e.printStackTrace();
}
}
}
8 ?修改Spring配置文件applicationContext.xml
applicationContext.xml文件的代碼修改。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
class="org.apache.commons.dbcp.BasicDataSource">
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
value="jdbc:sqlserver://localhost:1433;databaseName=XSKC">
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
org.hibernate.dialect.SQLServerDialect
/org/model/Dlb.hbm.xml
9 編寫測試類
在src文件夾下建立包test,在該包下建立類Test,代碼如下:
package?test;
import?org.dao.DlDao;
import?org.model.Dlb;
import?org.springframework.context.ApplicationContext;
import?org.springframework.context.support.FileSystemXmlApplicationContext;
public?class?Test?{
public?static?void?main(String[]?args){
Dlb?dlb=new?Dlb();
dlb.setId(1);
dlb.setXh("081109");
dlb.setKl("123456");
ApplicationContext?context=new
FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");
DlDao?dlDao=(DlDao)?context.getBean("dlDao");
dlDao.save(dlb);
}
}
運行該測試類后,打開數據庫,可以發現在DLB表中添加了一項記錄,如圖5.17所示。
?
圖5.17? 登錄表
Spring的Hibernate ORM 框架帶來了方便的HibernateDaoSupport類,該類為Dao類提供了非常方便的方法getHibernateTemplate(),Dao類只要繼承HibernateDaoSupport就可以使用該方法,例如上例的Dao實現類可以改成如下的代碼:
package?org.dao.imp;
import?org.dao.DlDao;
import?org.model.Dlb;
import?org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public?class?DlDaoImp?extends?HibernateDaoSupport?implements?DlDao{
public?void?save(Dlb?dl)?{
getHibernateTemplate().save(dl);
}
}
總結
以上是生活随笔為你收集整理的mysql5.7 hibenate5.1_5.7 Spring与Hibernate整合应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery li ul 伪分页_求教关
- 下一篇: java高并发抢单编程模型_Java高并