Hibernate初步部署-創(chuàng)新互聯(lián)

下載全套文件: hibernate-release-4.1.7.Final.zip

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的關(guān)嶺網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

目錄結(jié)構(gòu)

Documentation文件夾下是開(kāi)發(fā)幫助文檔

Lib文件夾是開(kāi)發(fā)使用的庫(kù),其中該文件夾下面的required目錄是開(kāi)發(fā)時(shí)必須導(dǎo)入的JAR文件;

Project文件夾是項(xiàng)目源碼文件

Hibernate初步部署

JDBC與Hibernate的比較:

Hibernate初步部署

Hibernate初步部署

Hibernate的初步配置部署:

1.     創(chuàng)建web項(xiàng)目

2.     添加響應(yīng)需要的Hibernate的jar包

3.     創(chuàng)建Java Bean業(yè)務(wù)實(shí)體類(lèi)

4.     創(chuàng)建實(shí)體類(lèi)映射的配置文件:**.hbm.xml

5.     創(chuàng)建Hibernate的配置文件hibernate.cfg.xml

6.     創(chuàng)建測(cè)試類(lèi)測(cè)試hibernate是否配置成功

實(shí)體類(lèi):UserInfo.java

  1. public class UserInfo

  2. {

  3.    private int userid;

  4.    private String userName;

  5.    private String userPwd;

  6.    private Date birthday;

  7.  //省略了屬性各種get和set方法

  8. //創(chuàng)建含有id的構(gòu)造函數(shù)

  9.    public UserInfo(int id)

  10.    {

  11.        this.userid=id;

  12.    }

  13.     public UserInfo(int userid, String userName, String userPwd, Date birthday)

  14.     {

  15.         super();

  16.         this.userid = userid;

  17.         this.userName = userName;

  18.         this.userPwd = userPwd;

  19.         this.birthday = birthday;

  20.     }

  21.     //無(wú)參的構(gòu)造函數(shù)是必須要有的

  22.     public UserInfo()

  23.     {

  24.     }

  25. }

實(shí)體類(lèi)的配置文件UserInfo.hbm.xml

(配置文件盡量和實(shí)體類(lèi)名字去的一致方便管理和實(shí)體類(lèi)放在同一個(gè)包中)

  1. <?xml version="1.0"?>

  2. <!DOCTYPE hibernate-mapping PUBLIC

  3.         "-//Hibernate/HibernateMapping DTD 3.0//EN"

  4.      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

  5. <hibernate-mapping package="entity">  //package包指定實(shí)體類(lèi)的包

  6.     <class name="UserInfo" table="luser">

  7. //name指定實(shí)體類(lèi)名  table為數(shù)據(jù)庫(kù)中實(shí)體類(lèi)對(duì)應(yīng)的表名如果沒(méi)有指定就和類(lèi)名一致

  8.        <id name="userid">

  9.             <generator class="native"/>

  10.        </id>

  11. //id標(biāo)識(shí)主鍵的字段 class=native標(biāo)識(shí)自增長(zhǎng)

  12.        <property name="userName" column=”name” />

  13. //property指定屬性的字段,column可以指定數(shù)據(jù)庫(kù)中對(duì)應(yīng)字段的名稱(chēng),如果沒(méi)有就和實(shí)體類(lèi)的屬性名一致

  14.        <property name="userPwd" />

  15.        <property name="birthday" />

  16.     </class>

  17. </hibernate-mapping>

Hibernate的配置文件hibernate.cfg.xml

  1. <!DOCTYPE hibernate-configuration PUBLIC

  2.     "-//Hibernate/HibernateConfiguration DTD 3.0//EN"

  3.     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

  4. <hibernate-configuration>

  5.     <session-factory>

  6.         <!-- 顯示執(zhí)行的sql語(yǔ)句 -->

  7.         <property name="show_sql">true</property>

  8.         <!-- 格式化sql語(yǔ)句 -->

  9.         <property name="format_sql">true</property>

  10.         <!-- 配置數(shù)據(jù)庫(kù)各種數(shù)據(jù) -->

  11.         <!-- 配置數(shù)據(jù)庫(kù)本地語(yǔ)言 -->

  12.         <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

  13.         <!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng) -->

  14.         <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

  15.         <!-- 數(shù)據(jù)庫(kù)url -->

  16.         <property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.3.252:1521:orcl</property>

  17.         <!-- 配置數(shù)據(jù)庫(kù)的用戶(hù)名和密碼 -->

  18.         <property name="hibernate.connection.username">bam1</property>

  19.         <property name="hibernate.connection.password">bam1</property>

  20.         <!-- 設(shè)置數(shù)據(jù)定義語(yǔ)言操作的方式 -->

  21.         <property name="hibernate.hbm2ddl.auto">update</property>

  22.         <!-- 加載對(duì)象關(guān)系映射文件 -->

  23.         <mapping resource="entity/UserInfo.hbm.xml"/>

  24.     </session-factory>

  25. </hibernate-configuration>

測(cè)試類(lèi)Test.java

添加一條數(shù)據(jù):

  1. public static void add()

  2.     {

  3.         //第一步:讀取Hibernate的配置文件  hibernamte.cfg.xml文件

  4.         Configurationcon=new Configuration().configure();

  5.         //第二步:創(chuàng)建服務(wù)注冊(cè)構(gòu)建器對(duì)象,通過(guò)配置對(duì)象中加載所有的配置信息

  6.         ServiceRegistryBuilderregbulider=newServiceRegistryBuilder().applySettings(con.getProperties());

  7.         //創(chuàng)建注冊(cè)服務(wù)

  8.         ServiceRegistryreg=regbulider.buildServiceRegistry();

  9.         //第三步:創(chuàng)建會(huì)話工廠

  10.         SessionFactorysessionFactory=con.buildSessionFactory(reg);

  11.         //第四步:創(chuàng)建數(shù)據(jù)操作會(huì)話

  12.         Sessionsession=sessionFactory.openSession();

  13.         //創(chuàng)建對(duì)象

  14.          */

  15.         UserInfohanhan=new UserInfo();

  16.         hanhan.setUserName("hanhan313");

  17.         hanhan.setUserPwd("123");

  18.         hanhan.setBirthday(new Date());

  19.         /*

  20.         //創(chuàng)建事物

  21.         Transactiontran=session.beginTransaction();

  22.         //保存數(shù)據(jù)

  23.         session.save(hanhan);

  24.         //提交事物

  25.         tran.commit();

  26.         //關(guān)閉對(duì)話

  27.         session.close();

  28. }

查詢(xún)一條數(shù)據(jù):

創(chuàng)建了session回話后

//查詢(xún)id為10的userinfo的用戶(hù)信息

UserInfouser=session.get(UserInfo.class,10);

更新一條數(shù)據(jù):

首先查詢(xún)出數(shù)據(jù)

UserInfo user=session.get(UserInfo.class,10);

再對(duì)user進(jìn)行數(shù)據(jù)修改后

再通過(guò)獲取到session回話

session.update(user)

刪除一條數(shù)據(jù):

刪除數(shù)據(jù)時(shí)將需要?jiǎng)h除的id數(shù)據(jù)包裝成對(duì)象

比如:

UserInfouser=new UserInfo();

User.setUserId(10);

session.delete(user); //刪除時(shí)就會(huì)自動(dòng)獲取到user中id進(jìn)行刪除

hibernate的流程:

Hibernate初步部署

持久化JAVA類(lèi)必須遵循的原則

1、為類(lèi)的持久化字段聲明訪問(wèn)方法(get/set),Hibernate對(duì)JavaBeans風(fēng)格的屬性實(shí)行持久化。

2、實(shí)現(xiàn)一個(gè)默認(rèn)的構(gòu)造方法,這樣的話Hibernate就可以使用Constructor.newInstance()方法來(lái)實(shí)例化對(duì)象。

3、如果是集合類(lèi)型的屬性,它的類(lèi)型必須定義為集合的接口,例如:List、Set

4、提供一個(gè)標(biāo)識(shí)屬性(Identifier property),如果沒(méi)有該屬性,一些功能不起作用,比如:級(jí)聯(lián)更新,session.saveOrUpdate()。

對(duì)象的狀態(tài):

瞬時(shí)(transient):數(shù)據(jù)庫(kù)中沒(méi)有數(shù)據(jù)與之對(duì)應(yīng),超過(guò)作用域會(huì)被JVM垃圾回收器回收,一般是new出來(lái)且與session沒(méi)有關(guān)聯(lián)的對(duì)象。

持久(persistent):數(shù)據(jù)庫(kù)中有數(shù)據(jù)與之對(duì)應(yīng),當(dāng)前與session有關(guān)聯(lián),并且相關(guān)聯(lián)的session沒(méi)有關(guān)閉,事務(wù)沒(méi)有提交;持久對(duì)象狀態(tài)發(fā)生改變,在事務(wù)提交時(shí)會(huì)影響到數(shù)據(jù)庫(kù)(hibernate能檢測(cè)到)。

脫管(detached):數(shù)據(jù)庫(kù)中有數(shù)據(jù)與之對(duì)應(yīng),但當(dāng)前沒(méi)有session與之關(guān)聯(lián);托管對(duì)象狀態(tài)發(fā)生改變,hibernate不能檢測(cè)到。

Hibernate初步部署

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站名稱(chēng):Hibernate初步部署-創(chuàng)新互聯(lián)
文章來(lái)源:http://muchs.cn/article28/csjccp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站制作定制網(wǎng)站、微信公眾號(hào)建站公司、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司