国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java對象持久化技術之Hibernate入門之一

2019-11-18 10:48:56
字體:
來源:轉載
供稿:網友

  Hibernate是java應用和關系數據庫之間的橋梁,它負責Java對象和關系數據之間的映射。Hibernate內部封裝了通過JDBC訪問數據庫的操作,向上層應用提供了面向對象的數據訪問API。在Java應用中使用Hibernate包含以下步驟。
  
  (1)創建Hibernate的配置文件。
  
  (2)創建持久化類。
  
  (3)創建對象-關系映射文件。
  
  (4)通過Hibernate API編寫訪問數據庫的代碼。
  
  本章通過一個簡單的例子helloapp應用,演示如何運用Hibernate來訪問關系數據庫。helloapp應用的功能非常簡單:通過Hibernate保存、更新、刪除、加載及查詢Customer對象。圖1顯示了Hibernate在helloapp應用中所處的位置。
   Java對象持久化技術之Hibernate入門之一(圖一)
  圖1 Hibernate在helloapp應用中所處的位置
  
  helloapp應用既能作為獨立的Java程序運行,還能作為Java Web應用運行,該應用的源代碼位于配套光盤的sourcecode/chapter2/helloapp目錄下。
  
  2.1 創建Hibernate的配置文件
  
  Hibernate從其配置文件中讀取和數據庫連接有關的信息,這個配置文件應該位于應用的classpath中。Hibernate的配置文件有兩種形式:一種是xml格式的文件;還有一種是Java屬性文件,采用"健=值"的形式。
  
  下面介紹如何以Java屬性文件的格式來創建Hibernate的配置文件。這種配置文件的默認文件名為hibernate.PRoperties,例程2-1為示范代碼。
  
  例程2-1 hibernate.properties
  
  hibernate.dialect=
  net.sf.hibernate.dialect.MySQLDialect
  hibernate.connection.driver_class=
  com.mysql.jdbc.Driver
  hibernate.connection.url=jdbc:mysql:
  //localhost:3306/SAMPLEDB
  hibernate.connection.username=root
  hibernate.connection.passWord=1234
  hibernate.show_sql=true
  
  以上hibernate.properties文件包含了一系列屬性及其屬性值,Hibernate將根據這些屬性來連接數據庫,本例為連接MySQL數據庫的配置代碼。表2-1對以上hibernate.properties文件中的所有屬性做了描述。
  
  表2-1 Hibernate配置文件的屬性
  Java對象持久化技術之Hibernate入門之一(圖二)
  Hibernate能夠訪問多種關系數據庫,如MySQL、Oracle和Sybase等。盡管多數關系數據庫都支持標準的SQL語言,但是它們往往還有各自的SQL方言,就像不同地區的人既能說標準的普通話,還能講各自的方言一樣。
  
  hibernate.dialect屬性用于指定被訪問數據庫使用的SQL方言,當Hibernate生成SQL查詢語句,或者使用native對象標識符生成策略時,都會參考本地數據庫的SQL方言。本書第5章(映射對象標識符)介紹了Hibernate的各種對象標識符生成策略。
  
  在Hibernate軟件包的etc目錄下,有一個hibernate.properties文件,它提供了連接各種關系數據庫的配置代碼樣例。
  
  2.2 創建持久化類
  
  持久化類是指其實例需要被Hibernate持久化到數據庫中的類。持久化類通常都是域模型中的實體域類。持久化類符合JavaBean的規范,包含一些屬性,以及與之對應的getXXX()和setXXX()方法。例程2-2定義了一個名為Customer的持久化類。
  
  例程2-2 Customer.java
  
  package mypack;
  import java.io.Serializable;
  import java.sql.Date;
  import java.sql.Timestamp;
  
  public class Customer implements Serializable
  {
  private Long id;
  private String name;
  private String email;
  private String password;
  private int phone;
  private boolean married;
  private String address;
  private char sex;
  private String description;
  private byte[] image;
  private Date birthday;
  private Timestamp registeredTime;
  
  public Customer(){}
  
  public Long getId()
  {
  return id;
  }
  
  public void setId(Long id)
  {
  this.id = id;
  }
  
  public String getName()
  {
  return name;
  }
  
  public void setName(String name)
  {
  this.name=name;
  }
  
  //此處省略email、password和phone
  等屬性的getXXX()和setXXX()方法
  ……
  }
  
  持久化類符合JavaBean的規范,包含一些屬性,以及與之對應的getXXX()和setXXX()方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 房山区| 郸城县| 永春县| 甘泉县| 潼关县| 教育| 兴国县| 铜梁县| 会宁县| 长武县| 临湘市| 绥德县| 腾冲县| 安陆市| 安乡县| 永靖县| 商城县| 邯郸市| 阳春市| 玉田县| 乌拉特中旗| 桐庐县| 察雅县| 中山市| 邹城市| 香格里拉县| 磴口县| 马山县| 西丰县| 通榆县| 共和县| 广州市| 涿鹿县| 团风县| 北辰区| 岱山县| 抚顺市| 托里县| 大兴区| 岑巩县| 霍邱县|