亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用HibernateTemplate

系統 1767 0

使用HibernateTemplate
HibernateTemplate 可將Hibernate 的持久層訪問模板化,使用HibernateTemplate 非常簡單。創建Hi bernateTemplate 實例后,注入一個SessionFactory 的引用,就可執行持久化操作。SessionFactoyr 對象可通過構造參數傳入,或通過設值方式傳入。例如:
//獲取Spring 上下文
ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml");
//通過上下文獲得SessionFactory
SessionFactory sessionFactory = (SessionFactory) ctx.getBean("sessionFactory") ,
HibernateTemplate 提供如下三個構造函數:
? HibernateTemplateO 。
? HibernateTemplate(org.hibernate.SessionFactory sessionFactory)。
? HibernateTemplate(org.hibernate.SessionFactory sessionFactory, boolean allowCreate) 。?

第一個構造函數:構造一個默認的HibernateTemplate 實例,因此,使用HibernateTemplate實例之前,還必須使用方法setSessionFactory(SessionFactory sessionFactory)來為HibernateTemplate 傳入SessionFactory 的引用。
第二個構造函數:在構造時已經傳入SessionFactory 引用。
第三個構造函數:其boolean 型參數表明,如果當前線程己經存在一個非事務性的Session ,是否直接返回此非事務性的Session 。
對于在Web 應用中,通常啟動時自動加載ApplicationContext , SessionFactory 和DAD對象都處在Spring 上下文管理下。因此無須在代碼中顯式設置,可采用依賴注入解耦SessionFactory 和DAO.

?其依賴關系可通過配置文件來設置

<? xml?version="1.0"?encoding="gb2312" ?>
<!-- Spring?配置文件的DTD?定義二〉
<!DOCTYPE?beans?PUBLIC?"-!!SPRING!!DTD?BEAN!!EN"??''http://www.springframework.org/dtd/spring-beans.dtd''>
????<!?--?Spring?配置文件的根元素是beans
-->
????
< beans >
????????
<!-- 定義數據源,該bean?的ID?為dataSource -->
????????
< bean? id ="?dataSource" ?class ="?org.?springframework.jdbc.?datasource.?DriverManagerDataSource" >
????????
<!-- ?指定數據庫驅動 -->
????????
< property? name ="driverClassName" >< value > com.mysql.jdbc.Driver </ value ></ property >
????????
<!-- ?指定連接數據庫的URL -->
????????
< property? name ="url" >< value > jdbc:mysql://wonder:3306/j2ee </ ?value >
????????
<! property >
????????
<!-- ?root?為數據庫的用戶名 -->
????????
< property? name ="username" >< value > root </ value ></ property >
????????
<!-- pass?為數據庫密碼 -->
????????
< property? name =?"password" ? >< value > pass </ value ></ property >
????
</ bean >
????
<!-- 定義Hibernate?的SessionFactoy -->
????
< bean? id ="sessionFactory" ?class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
????????
<!-- 依賴注入數據源,注入正是上文定義的dataSource -->
????????
< property? name ="dataSource" >< ref? local ="dataSource" /></ property >
????????
<!-- mappingResouces屬性用來列出全部映射文件〉
????????<property?name="mappingResources">
????????????<list>
????????????????<!--以下用來列出所有的PO?映射文件
-->
????????????????
< value > lee/Person.hbm.xml </ value >
????????????
</ list >
????????
</ property >
????????
<!-- 定義Hibernate?的SessionFactory的屬性 -->
????????
< property? name ="hibernateProperties" >
????????????
< props >
????????????????
<!-- ?指定Hibernate?的連接方言 -->
????????????????
< prop? key ="hibernate.dialect" > org.hibernate.dialect.MySQLDialect </ prop >
????????????????
<!-- 不同數據庫連接,啟動時選擇create?,?update?,?create-drop -->
????????????????
< prop? key ="hibernate.hbm2ddl.auto" > update </ prop >
????????????
</ props >
????
</ property >
????
</ bean >
????
<!-- 配置Person?持久化類的DAO?bean -->
????
< bean? id ="personDao" ?class ="lee.PersonDaoImpl" >
????????
<!-- 采用依賴注入來傳入SessionFactory的引用〉
????????<property?name="sessionFactory"><ref?local="sessionFactory"/></property>
????</bean>
</beans>

?

在DAO 實現類中,可采用更簡單的方式來取得HibemateTemplate的實例。代碼如下:

public ? class ?PersonDaoImpl? implements ?PersonDao
... {
????
// ?執行持久化操作的HibernateTemplate
????HibernateTemplate?ht;
????
private ?SessionFactory?sessionFactory;
????
// 依賴注入Sess工onFactory?的必需的setter?方法
???? public ? void ?setSessionFactory(SessionFactory?sessionFactory)
????
... {
????????
this .sessionFactory? = ?sessionFactory;
????}

????
// 該方法用于完成HibernateTemplate的初始化
???? private ? void ?setHibernateTemplate()????
????
... {
????????
if ?(ht? == null ) ... {
????????????ht?
= ? new ?HibernateTemplate(sessionFactory);
????????}

????}

????
/**?*/ /**
????*加載Person?實例
????*?
@param ?id?需要加載Person?實例的主鍵值
????*?
@return ?返回加載的Person?實例
????
*/

????
public ?Person?get( int ?id) ... {
????????setHibernateTemplate();
????????
return ?(Person)ht.get(Person. class ?,? new ?Integer(id));
????}

????
/**?*/ /**
????*保存Person?實例
????*?
@param ?person?需要保存的Person?實例
????
*/

????
public ? void ?save(Person?person) ... {
????????setHibernateTemplate()?;
????????ht.save(person)?;
????}

????
/**?*/ /**
????*修改Person?實例
????*?
@param ?person?需要修改的Person?實例
????
*/

????
public ? void ?update(Person?person) ... {
????????setHibernateTemplate();
????????ht.update(person);
????}

????
/**?*/ /**
????*刪除Person?實例
????*?
@param ?id?需要刪除的Person?id
????
*/

????
public ? void ?delete( int ?id) ... {
????????setHibernateTemplate();
????????ht.delete(ht.get(Person.
class ?,? new ?Integer(id)));
????}

????
/**?*/ /**
????*刪除Person?實例
????*?
@param ?perso口需要刪除的Person?實例
????
*/

????
public ? void ?delete(Person?person) ... {
????????setHibernateTemplate();
????????ht.delete(person)?;
????}

????
/**?*/ /**
????*根據用戶名查找Person
????*?
@param ?name?用戶名
????*?
@return ?用戶名對應的全部用戶
????
*/

????
public ?List?findByPerson(String?name) ... {
????????setHibernateTemplate();
????????
return ?h?t.?find( " from?Person?p?where?p.name?like?? " ?,?name);
????}

????
/**?*/ /**
????*返回全部的Person?實例
????*?
@return ?全部的Person?實例
????
*/

????
public ?List?findAllPerson() ... {
????????setHibernateTemplate();
????????
return ?ht.find( " from?Person? " );
????}

}

使用HibernateTemplate


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎www成人影院免费观看 | 国产一区二区三区不卡免费观看 | 久久艹精品 | 在线亚洲精品视频 | 久久这里只有精品1 | 亚洲区欧美区 | 精品久久洲久久久久护士免费 | 日本成本人在线观看免费视频 | 中文字幕色 | 欧美乱大交xxxxxbbb | 咪咪色网 | 国产欧美成人一区二区三区 | 在线观看国产欧美 | 在线观看欧美视频 | 欧美日韩北条麻妃一区二区 | 国产黄大片在线观 | 天海翼一区 在线播放 | 天天爱天天做久久天天狠狼 | 热玖玖 | 草草影院第一页 | 欧美成人手机在线视频 | 一 级 黄 中国色 片 | 国产色婷婷精品综合在线手机播放 | 亚洲品质自拍视频 | 天天艹日日干 | 亚洲视频免费一区 | 欧美综合精品一区二区三区 | 久久sese | 一级精品视频 | 91亚洲精品久久 | 欧美成人免费全网站大片 | 日韩久久中文字幕 | 91久久亚洲最新一本 | 四虎影视永久费观看在线 | 尤物福利 | 狠狠狠操| 日日操天天操 | 久久婷婷五夜综合色频 | 亚洲aa| 国产成人亚洲综合在线 | 高清国产在线 |