欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 亚洲精品国产第1页 | 国产精品无码永久免费888 | 久久久久久www | 成人网18视频网站 | a久久| 91免费在线看 | 亚洲伊人成色综合网 | 在线中文字幕视频 | 久久久精品中文字幕 | 久久久av| 免费电影av | 欧美一区二区三区在线可观看 | 狠狠操网 | 国产亚洲一级精品久久 | 日日干天天 | 国产精品久久久久久久久久免费 | 亚洲精品久久久久无码AV片软件 | 天天澡天天碰天天狠伊人五月 | 三级精品在线观看 | 久久福利电影 | 欧美特黄aaaaaa | 天天草天天 | 霍元甲之精武天下 | 亚洲午夜av久久乱码 | 91p在线观看 | 欧美视频大全 | 起视碰碰97摸摸碰碰视频 | 午夜激情视频在线观看 | 日韩有码一区 | 国产精品2区 | 亚洲欧美日韩精品久久奇米色影视 | 亚洲精品久久久中文字幕 | 午夜剧场直接免费观看 | 殴美一区 | 成人av福利| 欧美aaa级| 一区二区三区在线 | 网站 | 二区视频 | 91福利小视频 | 91视频免费观看高清观看完整 | 国产又黄又猛又粗又爽的A片动漫 |