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> <!-- 空閑連接  -->

附件列表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM