亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hibernate入門篇之新增特性.txt

?? Hibernate使用說明書
?? TXT
字號:
作者:smallduzi(杜恒飛)

版權聲明:本文嚴禁轉載,如有轉載請求,請和作者聯系

版本:hibernate-2.1final。

eclipse 2.1.2。

jsdk-1.4.2

所有文件存放在:com.javamodel.hibernate目錄下

hibernate在連接數據庫方面有兩種方式:

1。使用hibernate.properties文件,我下面采用的就是這種方式。這種方式比較直觀,也符合一些老程序員的思維模式。

2。使用hibernate.cfg.xml文件,這是hibernate默認的文件,在這里可以描述mapping文件,我想這就是最大的好處吧。

好,讓我們開始吧!

Example.java

package com.javamodel.hibernate;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.MappingException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;

public class Example{
    
    private static SessionFactory _sessions = null;
    private static Properties pops = new Properties();
    //啟動后,一次加載。
    static{
        try {
                //這里根據個人的喜好,在這里要是著這樣的話:"/hibernate.properties",
                //就可以把hibernate.properties放到src目錄下和com平級,在tomcate中放在web應用程序的web-inf/class目錄下了。
            InputStream stream = Example.class.getResourceAsStream("hibernate.properties");
            try {
                pops.load(stream);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            Configuration cfg = new Configuration();
            //比較麻煩的地方,class需要一個一個的加載。也就是增加一個表和對應的類,那各類要在這里注冊一下。
            cfg.addClass(Person.class);
            cfg.setProperties(pops);
            _sessions = cfg.buildSessionFactory();
        } catch (MappingException e) {
           e.printStackTrace();
        } catch (HibernateException e) {
           e.printStackTrace();
        }
    
    }
    
    public static void main(String[] args) throws HibernateException {
        
        Person person = new Person();
        person.setName("smallduzi");
        person.setEmail("smallduzi@sohu.com");
        
        Session session = _sessions.openSession();
        
        Transaction tx = null;
        try{
            tx = session.beginTransaction();
            session.save(person);
            tx.commit();        
        }catch(HibernateException he){
            if(tx != null) tx.rollback();
            throw he;
        }
        finally{
            session.close();
        }
        
    }
    
}

Person.java

package com.javamodel.hibernate;

public class Person {
    
    private String id = null;
    private String name = null;
    private String email = null;    
    
    public Person(){}

    /**
     * @return
     */
    public String getEmail() {
        return email;
    }

    /**
     * @return
     */
    public String getId() {
        return id;
    }

    /**
     * @return
     */
    public String getName() {
        return name;
    }

    /**
     * @param string
     */
    public void setEmail(String string) {
        email = string;
    }

    /**
     * @param string
     */
    public void setId(String string) {
        id = string;
    }

    /**
     * @param string
     */
    public void setName(String string) {
        name = string;
    }

}

Person.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping>
    <class name="com.javamodel.hibernate.Person" table="person">
        <id name="id">
            <column name="id" length="40"/>
            <generator class="uuid.hex"/>
        </id>
        <property name="name" column="name" />
        <property name="email" column="email" />
    </class>
</hibernate-mapping>

這里我用的是oracle數據庫,如果你使用的是其他數據庫,可參照hibernate.properties中其他的數據庫連接說明。

hibernate.properties

## Oracle

hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
hibernate.connection.username XXX
hibernate.connection.password XXX
#hibernate.connection.url jdbc:oracle:thin:@192.168.0.28:1521:orcl
hibernate.connection.url jdbc:oracle:oci8:@XXX

我沒有對他進行進一步的封裝。那樣初學者可能不理解。對session的封裝,可以參照hibernate文檔的HibernateUtil.java這個類(沒記錯的話)。

注意:在工程里要引用hibernate的jar。參照hibernate的文檔中有說需要的必須的jar。

作者:smallduzi(杜恒飛)

版權聲明:本文嚴禁轉載,如有轉載請求,請和作者聯系

接上一篇文章Hibernate入門篇之新增特性。我們繼續進行!

Author.java

package com.javamodel.hibernate;

public class Author{
    
    private String id ;
    private String alias = null;
    private Person person = null;
    
    /**
     * @return
     */
    public String getAlias() {
        return alias;
    }

    /**
     * @return
     */
    public Person getPerson() {
        return person;
    }

    /**
     * @param string
     */
    public void setAlias(String string) {
        alias = string;
    }
    /**
     * @param person
     */
    public void setPerson(Person person) {
        this.person = person;
    }
    /**
     * @return
     */
    public String getId() {
        return id;
    }
    /**
     * @param i
     */
    public void setId(String i) {
        id = i;
    }

}

author.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping>
    <class name="com.javamodel.hibernate.Author" table="author" > 
        <id name="id" column="id">
            <!-- 這里我把author作為主表,外鍵的描述也可以在Person.hbm.xml中表述,也是可以的-->
            <generator class="foreign">
              <param name="property">person</param>
            </generator>
        </id>
        <property name="alias" column="alias" />
        <one-to-one name="person" class="com.javamodel.hibernate.Person" cascade="all" constrained="true" />
    </class>
</hibernate-mapping>

Example.java

package com.javamodel.hibernate;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.MappingException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;

public class Example{
    
    private static SessionFactory _sessions = null;
    private static Properties pops = new Properties();
    
    static{
        try {
            InputStream stream = Example.class.getResourceAsStream("hibernate.properties");
            try {
                pops.load(stream);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            
            Configuration cfg = new Configuration();
            cfg.addClass(Person.class);
            cfg.addClass(Author.class);
            cfg.setProperties(pops);
            _sessions = cfg.buildSessionFactory();
            
        } catch (MappingException e) {
           e.printStackTrace();
        } catch (HibernateException e) {
           e.printStackTrace();
        }
    
    }
    
    public static void main(String[] args) throws HibernateException {
        
        Person person = new Person();
        
        person.setName("HengfeiDo");
        person.setEmail("smallduzi@sohu.com");
        
        Author author = new Author();

        author.setAlias("smallduzi");
        author.setPerson(person);

        Session session = _sessions.openSession();
        
        Transaction tx = null;
        try{
            tx = session.beginTransaction();
            session.save(author);
            
            tx.commit();
            System.out.println("over");
        }catch(HibernateException he){
            if(tx != null) tx.rollback();
            throw he;
        }
        finally{
            session.close();
        }
        
    }
    
}

如果大家有更好的實現方式可拿出來討論一下!

我將在下一篇文章介紹one-to-many。

參與討論

hibernate入門篇之新增特性_3:one-to-many
作者:smallduzi(杜恒飛)

版權聲明:本文嚴禁轉載,如有轉載請求,請和作者聯系

接上一篇文章hibernate入門篇之新增特性_2:one-to-one。我們再繼續進行!(為什么要說再呢?)

one to many時,兩端都需要描述。

Publication.java

package com.javamodel.hibernate;
public class Publication {
    
    private String id = null;
    private String bookName = null;
    private String dataTime = null;
    private String authorId = null;
    private Author author = null;
    
    public Publication(){}
    
    /**
     * @return
     */
    public String getBookName() {
        return bookName;
    }

    /**
     * @return
     */
    public String getDataTime() {
        return dataTime;
    }

    /**
     * @return
     */
    public String getId() {
        return id;
    }

    /**
     * @param string
     */
    public void setBookName(String string) {
        bookName = string;
    }

    /**
     * @param string
     */
    public void setDataTime(String string) {
        dataTime = string;
    }

    /**
     * @param string
     */
    public void setId(String string) {
        id = string;
    }

    /**
     * @return
     */
    public String getAuthorId() {
        return authorId;
    }

    /**
     * @param string
     */
    public void setAuthorId(String string) {
        authorId = string;
    }

    /**
     * @return
     */
    public Author getAuthor() {
        return author;
    }

    /**
     * @param author
     */
    public void setAuthor(Author author) {
        this.author = author;
    }

}

Publication.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping>
    <class name="com.javamodel.hibernate.Publication" table="publication">
        <id name="id" column="id">
            <generator class="uuid.hex"/>
        </id>
        <property name="bookName" column="bookname" />
        <property name="dataTime" column="datatime" />
        <!--多的這端也需要一個簡單的many-to-one的描述-->
        <many-to-one name="author" column="authorid" />
    </class>
</hibernate-mapping>

Author.java加上

private Set publications = new HashSet();//add get,set

author.hbm.xml加上

<!--
     這里是主的這端,你可以使用set,list,bag等,參照說明文檔,inverse="true",默認為false。這個地方
    在描述這兩個對應的mapping文件的時候,必須要有一端為:true。yehs220也多次提到過。
-->
        <set name="publications" lazy="true" inverse="true" cascade="all" >
          <key column="authorid"/> 
          <one-to-many class="com.javamodel.hibernate.Publication" />
        </set>

Example.java

package com.javamodel.hibernate;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.MappingException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;

public class Example{
    
    private static SessionFactory _sessions = null;
    private static Properties pops = new Properties();
    
    static{
        try {
            InputStream stream = Example.class.getResourceAsStream("hibernate.properties");
            try {
                pops.load(stream);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            
            Configuration cfg = new Configuration();
            cfg.addClass(Person.class);
            cfg.addClass(Author.class);
            cfg.addClass(Publication.class);
            cfg.setProperties(pops);
            _sessions = cfg.buildSessionFactory();
            
        } catch (MappingException e) {
           e.printStackTrace();
        } catch (HibernateException e) {
           e.printStackTrace();
        }
    
    }
    
    public static void main(String[] args) throws HibernateException {
        
        Person person = new Person();
        
        person.setName("HengfeiDo");
        person.setEmail("smallduzi@sohu.com");
        
        Publication publication1 = new Publication();
        publication1.setBookName("AAA");
        publication1.setDataTime("20031224");
        Publication publication2 = new Publication();
        publication2.setBookName("BBB");
        publication2.setDataTime("20031225");
        
        Author author = new Author();

        author.setAlias("smallduzi");
        author.setPerson(person);
        author.getPublications().add(publication1);
        author.getPublications().add(publication2);
        
        publication1.setAuthor(author);
        publication2.setAuthor(author);

        Session session = _sessions.openSession();
        
        Transaction tx = null;
        try{
            tx = session.beginTransaction();
            session.save(author);
            
            tx.commit();
            System.out.println("over");
        }catch(HibernateException he){
            if(tx != null) tx.rollback();
            throw he;
        }
        finally{
            session.close();
        }
        
    }
    
}

下一篇,我們介紹many-to-many


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲av在线| 亚洲免费av网站| 亚洲一卡二卡三卡四卡五卡| 激情文学综合网| 欧美日韩精品专区| 亚洲少妇屁股交4| 国产高清精品网站| 欧美一级高清大全免费观看| 一区二区三区中文字幕在线观看| 国产呦精品一区二区三区网站| 欧美日韩亚洲高清一区二区| 成人免费一区二区三区在线观看| 久久99久久99| 欧美丰满嫩嫩电影| 亚洲制服丝袜av| www.欧美精品一二区| 久久久影视传媒| 看电影不卡的网站| 7777精品伊人久久久大香线蕉完整版| 亚洲激情图片qvod| 91网上在线视频| 国产精品欧美久久久久无广告| 精品制服美女丁香| 日韩午夜电影在线观看| 亚洲国产成人tv| 在线观看国产精品网站| 综合av第一页| 91在线视频播放| 专区另类欧美日韩| 99久久久国产精品| 国产精品国产自产拍高清av | 亚洲另类春色国产| 成人av影视在线观看| 国产欧美一区二区精品秋霞影院| 国内一区二区在线| 26uuu精品一区二区| 美女被吸乳得到大胸91| 日韩欧美国产一区二区三区| 人妖欧美一区二区| 日韩一区国产二区欧美三区| 美女一区二区三区| 日韩精品一区二区三区老鸭窝| 蜜桃久久久久久| 日韩欧美国产一区二区在线播放| 久久精品国产一区二区| 欧美一区二区福利在线| 蜜桃视频一区二区| 久久久综合视频| 大尺度一区二区| 中文字幕一区二区三区蜜月| 91丨九色丨黑人外教| 亚洲久草在线视频| 欧美日韩二区三区| 日本sm残虐另类| 精品国产免费人成电影在线观看四季 | 一本大道久久a久久精品综合| 日韩毛片在线免费观看| 在线视频国内自拍亚洲视频| 亚洲综合精品自拍| 欧美精品18+| 国产又粗又猛又爽又黄91精品| 国产视频一区在线播放| 99久久免费精品| 亚洲综合免费观看高清完整版在线| 欧美日韩国产天堂| 美女一区二区视频| 欧美国产丝袜视频| 色哟哟一区二区三区| 午夜欧美电影在线观看| 日韩亚洲欧美一区| 国产成人综合在线播放| 中文字幕亚洲电影| 欧美精品久久一区| 国产美女精品一区二区三区| 欧美激情一区二区三区在线| 色噜噜夜夜夜综合网| 视频一区二区三区入口| 久久精品日产第一区二区三区高清版| av不卡在线观看| 亚洲va欧美va国产va天堂影院| 日韩你懂的电影在线观看| 懂色一区二区三区免费观看| 亚洲免费观看视频| 在线成人av网站| 国产成a人亚洲| 亚洲午夜久久久久久久久久久| 日韩视频一区二区三区在线播放 | 亚洲va天堂va国产va久| 久久夜色精品一区| 91国偷自产一区二区开放时间 | 三级欧美韩日大片在线看| 久久婷婷色综合| 91电影在线观看| 久久黄色级2电影| 尤物av一区二区| 久久综合久久99| 在线观看日韩精品| 国产高清一区日本| 日韩和欧美一区二区| 国产蜜臀97一区二区三区 | 成人91在线观看| 日产国产欧美视频一区精品| 欧美国产精品中文字幕| 欧美福利一区二区| 99精品视频在线播放观看| 免费观看日韩av| 亚洲视频一区在线观看| 日韩免费高清av| 色噜噜狠狠色综合欧洲selulu| 国内精品国产三级国产a久久| 亚洲午夜激情av| 中文字幕乱码亚洲精品一区| 91精品婷婷国产综合久久竹菊| av在线一区二区三区| 精品一区二区影视| 亚洲成av人影院| 中文字幕一区二区三区不卡在线| 日韩欧美成人一区二区| 91久久精品网| 欧美视频在线一区| av中文字幕不卡| 国产精品一线二线三线| 日韩国产成人精品| 一区二区三区日韩欧美| 国产欧美日韩综合| 精品国内片67194| 3d动漫精品啪啪1区2区免费| 91麻豆精品秘密| 懂色av噜噜一区二区三区av| 青娱乐精品视频| 亚洲国产精品久久人人爱蜜臀| 18成人在线视频| 亚洲国产精品二十页| 欧美成人福利视频| 欧美一卡2卡3卡4卡| 欧美网站大全在线观看| 91蝌蚪国产九色| av中文字幕不卡| av一区二区三区在线| 国产激情视频一区二区在线观看| 美国十次了思思久久精品导航| 亚洲一级在线观看| 亚洲最大成人综合| 亚洲精选视频在线| 亚洲视频一区在线观看| 日韩一区欧美小说| 亚洲色欲色欲www在线观看| 国产精品美女久久福利网站| 国产亚洲欧美一区在线观看| 久久一区二区视频| 久久蜜桃香蕉精品一区二区三区| 日韩欧美国产成人一区二区| 日韩一区二区麻豆国产| 91精品国产色综合久久ai换脸| 欧美日本在线视频| 91精品欧美一区二区三区综合在 | 国产传媒欧美日韩成人| 国产麻豆一精品一av一免费| 韩国女主播一区| 国产在线一区观看| 国产精品正在播放| 懂色一区二区三区免费观看 | 毛片不卡一区二区| 久久99久久精品欧美| 狠狠色丁香九九婷婷综合五月| 久草在线在线精品观看| 国产一区二区在线视频| 国产剧情在线观看一区二区| 丁香婷婷综合色啪| 波多野结衣亚洲一区| 色综合久久中文字幕| 在线观看国产91| 91精品国产色综合久久| 精品免费日韩av| 国产日韩在线不卡| 亚洲日本欧美天堂| 亚洲成人资源在线| 奇米精品一区二区三区在线观看| 狠狠色丁香久久婷婷综合_中| 国产成人免费av在线| 99精品一区二区三区| 91久久线看在观草草青青| 欧美日韩免费视频| 日韩一级高清毛片| 国产亚洲一区二区三区| 亚洲欧美激情小说另类| 日韩国产一区二| 国产精品1区二区.| 91麻豆福利精品推荐| 欧美日韩日本视频| 久久色中文字幕| 中文字幕欧美一区| 五月婷婷欧美视频| 国产在线看一区| 色偷偷久久一区二区三区| 91精品国产免费| 欧美国产精品一区二区| 亚洲一区二区三区在线看| 麻豆91小视频| 99久久免费视频.com|