成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate創(chuàng)建和持久化Product

開(kāi)發(fā) 后端
這里介紹Hibernate創(chuàng)建和持久化Product,我們用Hibernate創(chuàng)建一個(gè)Product,然后將其持久化;我們將搜索并加載一個(gè)已經(jīng)持久化Product,并確保其可以使用;我們將會(huì)更新和刪除Product。

在向大家詳細(xì)介紹持久化Product之前,首先讓大家了解下Hibernate創(chuàng)建一個(gè)Product,然后全面介紹。

在我們假想的應(yīng)用程序中,基本的使用模式非常簡(jiǎn)單:我們用Hibernate創(chuàng)建一個(gè)Product,然后將其持久化(或者換句話(huà)說(shuō),保存它);我們將搜索并加載一個(gè)已經(jīng)持久化Product,并確保其可以使用;我們將會(huì)更新和刪除Product。

Hibernate創(chuàng)建和持久化Product

現(xiàn)在我們終于用到Hibernate了。使用的場(chǎng)景非常簡(jiǎn)單:
1. Hibernate創(chuàng)建一個(gè)有效的Product。
2. 在應(yīng)用程序啟動(dòng)時(shí)使用net.sf.Hibernate.cfg.Configuration獲取net.sf.Hibernate.SessionFactory。
3. 通過(guò)調(diào)用SessionFactory#openSession(),打開(kāi)net.sf.Hibernate.Session。
4. 保存Product,關(guān)閉Session。

正如我們所看到的,這里沒(méi)有提到JDBC、SQL或任何類(lèi)似的東西。非常令人振奮!下面的示例遵循了上面提到的步驟:

  1. package test;  
  2.  
  3. import net.sf.hibernate.Session;  
  4. import net.sf.hibernate.SessionFactory;  
  5. import net.sf.hibernate.Transaction;  
  6. import net.sf.hibernate.cfg.Configuration;  
  7. import test.hibernate.Product;  
  8.  
  9. // 用法:  
  10. // java test.InsertProduct name amount price  
  11. public class InsertProduct {  
  12.  
  13. public static void main(String[] args)  
  14. throws Exception {  
  15.  
  16. // 1. 創(chuàng)建Product對(duì)象  
  17. Product p = new Product();  
  18. p.setName(args[0]);  
  19. p.setAmount(Integer.parseInt(args[1]));  
  20. p.setPrice(Double.parseDouble(args[2]));  
  21.  
  22. // 2. 啟動(dòng)Hibernate  
  23. Configuration cfg = new Configuration()  
  24.  .addClass(Product.class);  
  25. SessionFactory sf = cfg.buildSessionFactory();  
  26.  
  27. // 3. 打開(kāi)Session  
  28. Session sess = sf.openSession();  
  29.  
  30. // 4. 保存Product,關(guān)閉Session  
  31. Transaction t = sess.beginTransaction();  
  32. sess.save(p);  
  33. t.commit();  
  34. sess.close();  
  35. }  

當(dāng)然,INFO行指出我們需要一個(gè)Hibernate.properties配置文件。在這個(gè)文件中,我們配置要使用的數(shù)據(jù)庫(kù)、用戶(hù)名和密碼以及其他選項(xiàng)。使用下面提供的這個(gè)示例來(lái)連接前面提到的Hypersonic數(shù)據(jù)庫(kù):

  1. hibernate.connection.username=sa 
  2. hibernatehibernate.connection.password=  
  3. hibernate.connection.url=jdbc:hsqldb:/home/davor/hibernate/orders  
  4. hibernate.connection.driver_class=org.hsqldb.jdbcDriver  
  5. hibernate.dialect=net.sf.hibernate.dialect.HSQLDialect 

適當(dāng)?shù)剡M(jìn)行修改(例如,可能需要修改Hibernate.connection.url),并保存到classpath中。這很容易,但那個(gè) test/Hibernate/Product.hbm.xml資源是什么呢?它是一個(gè)XML文件,定義了Java對(duì)象如何被持久化(映射)到一個(gè)數(shù)據(jù)庫(kù)。在該文件中,我們定義數(shù)據(jù)存儲(chǔ)到哪個(gè)數(shù)據(jù)庫(kù)表中,哪個(gè)字段映射到數(shù)據(jù)庫(kù)表的哪個(gè)列,不同的對(duì)象如何互相關(guān)聯(lián),等等。讓我們來(lái)看一下 Product.hbm.xml。

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE hibernate-mappingPUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    > 
  3.  
  4. <hibernate-mapping> 
  5. <class name="test.hibernate.Product"table="products"> 
  6.  
  7. <id name="id" type="string"unsaved-value="null"> 
  8. <column name="id" sql-type="char(32)"not-null="true"/> 
  9. <generator class="uuid.hex"/> 
  10. </id> 
  11. <property name="name"> 
  12. <column name="name" sql-type="char(255)"not-null="true"/> 
  13. </property> 
  14. <property name="price"> 
  15. <column name="price" sql-type="double"not-null="true"/> 
  16. </property> 
  17. <property name="amount"> 
  18. <column name="amount" sql-type="integer"not-null="true"/> 
  19. </property>   
  20. </class> 
  21. </hibernate-mapping> 

【編輯推薦】

  1. Hibernate對(duì)數(shù)據(jù)索引進(jìn)行緩存
  2. 剖析Hibernate主鍵生成幾種常用方式
  3. 淺析Hibernate實(shí)現(xiàn)實(shí)體對(duì)象延遲加載
  4. Hibernate集合類(lèi)型的延遲加載特性
  5. 概括Hibernate屬性延遲加載
責(zé)任編輯:佚名 來(lái)源: 51CTO.com
相關(guān)推薦

2009-09-29 16:46:01

創(chuàng)建Hibernate

2009-09-24 15:42:44

Hibernate對(duì)象

2009-09-24 16:39:20

Hibernate傳播

2009-09-25 17:19:28

Hibernate持久

2009-09-29 16:11:45

Hibernate實(shí)現(xiàn)

2009-09-28 15:38:12

Hibernate P

2009-09-25 09:30:33

Hibernate持久

2009-06-17 16:00:03

Hibernate自定

2009-09-23 17:00:07

Hibernate持久

2009-09-21 17:46:34

Hibernate持久

2009-09-29 10:37:29

Hibernate持久

2009-09-29 10:57:25

設(shè)置Hibernate

2022-09-21 23:29:15

Python點(diǎn)云數(shù)據(jù)

2009-09-27 09:55:38

Hibernate持久

2023-09-06 17:02:53

2011-03-24 11:37:41

Hibernate

2009-06-26 16:27:10

Hibernate創(chuàng)建

2013-09-12 14:56:02

iOS持久化

2009-06-16 14:11:36

Hibernate優(yōu)點(diǎn)Hibernate構(gòu)架

2012-01-13 12:57:48

Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人av免费 | 99久久久国产精品免费消防器 | 成人欧美一区二区三区黑人孕妇 | 欧美日一区 | 久久高清| 欧美性大战xxxxx久久久 | 国产精品久久精品 | 国产精品永久在线观看 | 欧美久久久久久久久中文字幕 | 国产麻豆乱码精品一区二区三区 | 亚洲精品片 | 97国产爽爽爽久久久 | 激情一区二区三区 | 国产亚洲网站 | 亚洲福利av | 欧美在线一区二区三区 | 中文字幕一区在线观看视频 | 日批免费看 | 精品久久久久久中文字幕 | 国产精品永久 | 国产精品一区二区久久 | 天天综合网7799精品 | 国产亚洲欧美另类一区二区三区 | 涩在线| 日韩在线视频一区 | 黄色片a级 | 青青艹在线视频 | 在线激情视频 | 亚洲成人一区 | 亚洲精品视频在线看 | 久青草影院| 欧美成人一区二区 | 中文字幕精品一区 | 国产不卡在线播放 | 北条麻妃一区二区三区在线观看 | 伊人啪啪网 | 久久99精品久久久久久 | 国产亚洲一区精品 | 国产观看| jizz在线看片 | 亚洲欧美日韩精品久久亚洲区 |