国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
JAVA操作數(shù)據(jù)庫(kù)總結(jié)之組件篇-Hibernate
Hibernate是中小型項(xiàng)目使用的最多的一種持久化技術(shù)。而它最重要的概念就是ORM(對(duì)象-關(guān)系映射)。對(duì)于這個(gè)概念,許多資料上的解釋都不一樣,比較大眾化的解釋是,將數(shù)據(jù)庫(kù)中的記錄映射到程序中,使其成為對(duì)象來(lái)操作,就象操作JAVA的普通類(lèi)一樣。除了這些,它還可以為我們管理連接對(duì)象,事務(wù)處理等操作。所以使用起來(lái)很方便。
    首先我們來(lái)看一下一個(gè)簡(jiǎn)單的Hibernate程序的結(jié)構(gòu)。它有兩個(gè)xml文件很重要,第一個(gè)就是*.cfg.xml文件。它描述了Hibernate和數(shù)據(jù)庫(kù)之間的配置信息。比如連接池、數(shù)據(jù)源。
 
    這里不得不說(shuō)到的一個(gè)類(lèi)就是SessionFactory類(lèi),它是Hibernate里面最重要的一個(gè)類(lèi)。基本上所有其他操作API都是從這個(gè)類(lèi)獲得實(shí)例的。而這個(gè)配置文件中,描述了SessionFactory的基本內(nèi)容,也就是連接信息,和另外一個(gè)非常重要的內(nèi)容,就是:*.hbm.xml文件。其實(shí),如果你使用工具的話(比如MyEclipse,JBuilder),這些東西都可以自動(dòng)生成。先還是講一下這些東西都描述的是些什么內(nèi)容吧。
    myeclipse.connection.profile  它描述的是一個(gè)連接的名字
    connection.url  它描述了連接字符串
    connection.username/connection.password  描述了用戶名和密碼
    connection.driver_class  描述了驅(qū)動(dòng)類(lèi)
    dialect  這個(gè)東西描述了Hibernate對(duì)Oracle9i提供支持的類(lèi)
    在這個(gè)文件中還可以描述事務(wù)和其他的操作。
    另外一個(gè)重要的文件是*.hbm.xml文件,它描述了數(shù)據(jù)庫(kù)中的表的信息。不過(guò)在說(shuō)這個(gè)文件之前,我們先要用類(lèi)來(lái)描述數(shù)據(jù)庫(kù)中的記錄。
    public class StuInfo
    {
      private Integer stuID;
      private String stuName;
      private void setStuID(Integer id){this.stuID=id;}
      public Integer getStuID(){return stuID;}
      public void setStuName(String name){this.stuName=name;)
      public String getStuName(){return stuName;}
    }
    需要注意的是:在JAVA中不能用基本數(shù)據(jù)類(lèi)型去描述數(shù)據(jù)庫(kù)中的類(lèi)型。然后我們?cè)賮?lái)看看*.hbm.xml文件中是如何描述的吧。
 
 
    需要說(shuō)明的是,這里使用了Oracle里面的序列來(lái)實(shí)現(xiàn)自動(dòng)增長(zhǎng),而且讓stuID字段的set方法是私有的。這是因?yàn)閟tuID字段是主鍵字段,而且又是自動(dòng)增長(zhǎng)的,所以不需要人工修改它的值。
    以上這些都只是使用Hibernate的準(zhǔn)備工作,接下來(lái)就可以操作Hibernate來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的邏輯。
    首先必須創(chuàng)建一個(gè)Configuration對(duì)象來(lái)加載我們的*.cfg.xml文件。
    Configuration cfg = new Configuaration();
    cfg.configure("/cfg/hibernate.cfg.xml");//cfg包下面
    然后用這個(gè)對(duì)象來(lái)創(chuàng)建SessionFactory對(duì)象。這個(gè)對(duì)象很重要,它是用來(lái)創(chuàng)建Hibernate會(huì)話和其他類(lèi)的重要類(lèi)。
    SessionFactory factory = cfg.buildSessionFactory();
    Session session = factory.openSession();
    有了Session之后,我們就可以用它來(lái)創(chuàng)建各種操作數(shù)據(jù)庫(kù)的類(lèi)。先來(lái)說(shuō)說(shuō)查詢(xún)吧。我們需要使用一種叫做HQL的查詢(xún)語(yǔ)言,它是Hibernate特有的一中查詢(xún)語(yǔ)言,和我們熟悉的SQL很象。當(dāng)然Hibernate還提供了其他的查詢(xún)方式,等下次有機(jī)會(huì)的時(shí)候再說(shuō)吧。
    Query query = session.createQuery("from StuInfo");
    List list = query.list();//執(zhí)行查詢(xún)并獲得集合
    //迭代數(shù)據(jù)
    Iterator it = list.iterator();
    while(it.hasNext()){
      StuInfo stu = (StuInfo)it.next();
      System.out.println(stu.getStuName());
    }
    這就是一個(gè)簡(jiǎn)單的查詢(xún)。這里需要注意的是,查詢(xún)語(yǔ)句中的表必須和StuInfo.hbm.xml中映射的表名一樣,其他的字段也是。下面說(shuō)說(shuō)插入、更新和刪除。
    想要修改和更新,或者刪除,我們必須先得到要修改的對(duì)象。所以先要使用查詢(xún)來(lái)獲取對(duì)象。而且修改的過(guò)程當(dāng)中有可能會(huì)報(bào)錯(cuò),所以我們要使用事務(wù)處理。
    Transaction trans = session.beginTransaction();
    trans.begin();//開(kāi)始事務(wù)
    Query query = session.createQuery("from StuInfo where stuID=1");
    List list = query.list();
    if (!list.isEmpty()) {
      Iterator it = list.iterator();
      StuInfo stu = (StuInfo) it.next();
      stu.setStuname("roddick");
      session.update(stu);//修改更新,刪除是session.delete(stu);
      trans.commit();//提交事務(wù)
      session.close();//關(guān)閉會(huì)話
    }
    以上就是Hibernate的簡(jiǎn)單操作,是不是很容易。需要注意的是,這里的表映射是沒(méi)有主外鍵關(guān)系的,如果表和其他表有主外鍵關(guān)系的話,在創(chuàng)建SessionFactory對(duì)象的時(shí)候是會(huì)報(bào)錯(cuò)的。要處理這種情況必須在建立映射關(guān)系的時(shí)候考慮一對(duì)多映射。這種情況我們下次有機(jī)會(huì)再說(shuō)吧。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Hibernate多對(duì)一關(guān)系映射
myeclipse開(kāi)發(fā)hibernate應(yīng)用程序示例
使用MyEclipse可視化開(kāi)發(fā)Hibernate實(shí)例
hibernate的工作原理以及為什么要使用hibernate
Hibernate中SessionFactory配置
Hibernate學(xué)習(xí)筆記總結(jié)(一)——Hibernate 3.x 基礎(chǔ)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服