欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

使用HibernateTemplate

系統 1828 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條評論
主站蜘蛛池模板: 激情五月社区 | 亚洲AV久久无码精品九号 | 日韩一二三区视频 | 奇米影视888狠狠狠777不卡 | 成人黄色片网站 | 一区二区日韩精品 | 精品人成 | 青青久久 | 日本中文字幕一区二区有码在线 | 国产玖玖 | 中文字幕精品一区二区三区精品 | 精品无人区乱码一区二区三区手机 | 国产小视频免费在线观看 | 亚欧乱色一区二区三区 | 综合二区 | 无限看片在线版免费视频大全 | 秦浩最新电视剧 | 亚洲精品国产成人 | 亚洲第一黄色网址 | 国产高清视频a在线大全 | 曰批全过程40分钟免费视频多人 | 自拍偷拍视频网站 | 国产福利不卡视频在免费播放 | 亚洲 欧美 校园 | 久操国产视频 | 精品国产成a人在线观看 | 久久亚洲最大成人网4438 | 色综合久久综合欧美综合图片 | 九九综合九九综合 | 狠狠影院| 亚洲一二三区精品 | 一区二区精品在线 | 无码国产精品成人午夜视频 | 日本黄 色 成 年 人免费观看 | 亚洲精品乱码久久久久久蜜桃 | 在线观看高清免费 | 国产精品大片在线观看 | 亚洲毛片在线观看 | 天天操天天干天天爽 | 天堂成人 | 日韩中文字幕一区 |