Hibernate5環境搭建

 
1.導包
  • Hibernate開發包
  •  
  • 數據庫的驅動包
 
2.核心配置文件
 
核心配置文件(賦值到src下)
1.核心配置文件
對於hibernate的核心配置文件它有兩種方式(選其中一種便可):
  1. hibernate.cfg.xml
     
  2. hibernate.properties
     
咱們在開發中使用比較多的是hibernate.cfg.xml這種方式,緣由它的配置能力更強,易於修改
咱們主要講解的是hibernate.cfg.xml配置
 
1.能夠加載數據庫相關信息
<!-- 配置關於數據庫鏈接的四個項 driverClass url username password -->
           <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
           <property name="hibernate.connection.url">jdbc:mysql:///hibernateTest</property>
           <property name="hibernate.connection.username">root</property>
           <property name="hibernate.connection.password">123</property>
2.hibernate相關配置
 
<!-- 能夠將向數據庫發送的sql顯示出來 -->
           <property name="hibernate.show_sql">true</property>
           <!-- 格式化sql -->
           <property name="hibernate.format_sql">true</property>
     
           <!-- hibernate的方言(告知連接的數據庫類型MySQL爲例) -->
           <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
 
 
3.加載映射配置文件
          
<!-- 配置hibernate的映射文件所在位置 -->
           <mapping resource="cn/itheima/domain/Customer.hbm.xml" />
 
 
 
對於hibernate.cfg.xml配置文件中的內容能夠參考hibernate/project/etc/hibernate.properties的配置

 
配置下面這些屬性後,咱們能夠進行表的自動建立
 
#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate
 
 
Create-drop 每次都會建立一個新的表,執行完成後刪除。通常在測試中使用
Create   每次都會建立一個新的表,通常是在測試中使用
update 若是數據庫中有表,不建立,沒有表建立,若是映射不匹配,會自動更新表結構(只能添加)
validate  只會使用存在的表,而且會對映射關係進行校驗.
 
 
3.映射配置文件
命名規範: 類名.hbm.xml
它通常放置在實體類所在的包下。
這個配置文件的主要做用是創建表與類的映射關係。
    
1.統一聲明包名,這樣在<class>中就不須要寫類的全名.

2.關於<class>標籤配置
<class name="cn.itcast.domain.Customer" table="t_coustomer" catalog="hibernateTest">
    <id></id>
</class>
        name屬性:類的全名稱
        table 表的名稱,能夠省略,這時表的名稱就與類名一致
        catalog屬性:數據庫名稱 能夠省略.若是省略,參考核心配置文件中url路徑中的庫名稱
 
3.關於<id>標籤
<!-- id用於描述主鍵 -->
<id name="id" column="id">
        <!-- 主鍵生成策略 -->
       <generator class="native"></generator>
</id>
首先它必須存在。<id>是用於創建類中的屬性與表中的主鍵映射。
name 類中的屬性名稱
column 表中的主鍵名稱  column它也能夠省略,這時列名就與類中屬性名稱一致
length 字段長度
type屬性 指定類型
<generator>它主要是描述主鍵生成策略.
 
4.關於<property>標籤
           
<!-- 使用property來描述屬性與字段的對應關係 -->
<property name="name" column="name" length="20"></property>
<property name="address" column="address" length="50"></property>
 
關於hibernate的映射文件中類型問題
          對於type屬性它的取值,能夠有三種:
               1.java中的數據類型
               2.hibernate中的數據類型
               3.SQL的數據類型
默認是 hibernate 中數據類型
4.獲取session的工具類編寫(可選)
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * HibernateUtils工具類
 * 
 * @author TGV5
 *
 */
public class HibernateUtils {

	private static Configuration config;
	private static SessionFactory sessionFactory;

	static {

		config = new Configuration().configure();
		sessionFactory = config.buildSessionFactory();

	}

	/**
	 * 獲取SessionFactory
	 * 
	 * @return
	 */
	public static Session openSession() {
		return sessionFactory.openSession();
	}

	public static Session getCurrentSession() {
		return sessionFactory.getCurrentSession();
	}

}
 
 
5.c3p0鏈接池的配置(雖然HIbernate帶有默認的鏈接池,可是性能不如C3P0鏈接池)
1.導入Hibernate提供的3個C3p0的jar包
2.在覈心配置文件hibernate.cfg.xml中添加提供者配置
 
    c3p0的配置的能夠不進行配置,會有默認的配置
<!--  設置鏈接提供者 -->
	<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
		<!-- c3p0鏈接池的配置 -->
		<property name="hibernate.c3p0.max_size">20</property><!--  最大鏈接池 -->
		<property name="hibernate.c3p0.min_size">5</property><!--  最小鏈接數 -->
		<property name="hibernate.c3p0.timeout">120</property> <!-- 超時 -->
		<property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 空閒鏈接  -->

附件列表

相關文章
相關標籤/搜索