Hibernate (物件導向的資料庫操作),hibernate物件導向

來源:互聯網
上載者:User

Hibernate (物件導向的資料庫操作),hibernate物件導向
JPA,java persistance api,java持久層介面,即與資料庫打交道的一些介面。實現交給各個廠商去實現。

ORM,Object/Relation Mapping,對象/關聯式資料庫映射。物件導向的資料庫操作,底層仍是sql語句。

獲得hibernate的maven依賴。
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.10.Final</version></dependency><!--c3p0與mysql的依賴都需要--><dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <version>5.1.31</version>  </dependency>  


Hibernate是一個優秀的ORM實現。使用方法見下。
設定檔名為hibernate.cfg.xml,一般放在src目錄下。它使用c3p0作為資料庫連接池。
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><!--表明以下的配置是針對session-factory配置的,SessionFactory是Hibernate中的一個類,這個類主要負責儲存HIbernate的配置資訊,以及對Session的操作 --><session-factory><property name="connection.driver_class">com.mysql.jdbc.Driver </property><property name="connection.url">jdbc:mysql://me.likeyichu.com:3306/AliyunDB</property><property name="Connection.useUnicode">true </property><property name="connection.characterEncoding">utf-8</property><property name="connection.username">root</property><property name="connection.password">密碼</property><!-- c3p0 --><property name="hibernate.c3p0.max_size">20</property><property name="hibernate.c3p0.min_size">1</property><property name="hibernate.c3p0.timeout">5000</property><property name="hibernate.c3p0.max_statements">100</property><property name="hibernate.c3p0.idle_test_period">3000</property><property name="hibernate.c3p0.validate">true</property><property name="hibernate.c3p0.acquire_increment">2</property><!--是否在後台顯示Hibernate用到的SQL語句,開發時設定為true,便於查錯,程式運行時可以在Eclipse的控制台顯示Hibernate的執行Sql語句。項目部署後可以設定為false,提高運行效率 --><property name="hibernate.show_sql">true </property><!--hibernate.dialect 只是Hibernate使用的資料庫方言,就是要用Hibernate串連那種類型的資料庫伺服器。 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect </property><!--指定映射的類 --><mapping class="com.likeyichu.webservice.resource.me.Student" /></session-factory></hibernate-configuration>    


常用類@ javax.persistence.Entity
表明這個類對應著資料庫中某張表中的實體。
@javax.persistence.Table
該註解的name屬性標明java類與哪張表相對應。


@javax.persistence.Id
標明這個欄位是資料庫表中的主鍵。
@javax.persistence.Column
該註解的name屬性指定該欄位與表中的哪一列相對應。預設是同名的相互匹配。
@javax.persistence.Temporal
資料庫中時間類型比較多,賦值為TemporalType.TIMESTAMP表示時間戳記。
@javax.persistence.Transient
當某個pojo的欄位不在表中的時候,可以加上這個注釋,避免錯誤。

HQLorg.hibernate.SharedSessionContract.createQuery(String queryString)
用給定的hql語句建立一個query。
List org.hibernate.Query.list()
將查詢結果以list的形式返回。


程式碼範例


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.