Hibernate配置過程

1、先建立一個Web項目,導入Hibernate必備的jar包

2、在數據庫中創建表 

CREATE TABLE `cst_customer` (
  `cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客戶編號(主鍵)',
  `cust_name` varchar(32) NOT NULL COMMENT '客戶名稱(公司名稱)',
  `cust_source` varchar(32) DEFAULT NULL COMMENT '客戶信息來源',
  `cust_industry` varchar(32) DEFAULT NULL COMMENT '客戶所屬行業',
  `cust_level` varchar(32) DEFAULT NULL COMMENT '客戶級別',
  `cust_phone` varchar(64) DEFAULT NULL COMMENT '固定電話',
  `cust_mobile` varchar(16) DEFAULT NULL COMMENT '移動電話',
  PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

3、編寫實體類   略略略

4、編寫由實體類到數據庫的表映射文件。(xxx.nbm.xml)

   其中重要的元素有:

        DOCTYPE:hibernate-core-5.0.7.Final.jar 中的hibernate-mapping-3.0.dtd找到該聲明

      ①hibernate-mapping

      ② class(name、table)   

      ③id(name、clumn、generator)

      ④property(name、column、type、length)

   屬性類似於id,但是不同的是id作爲zhu

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <!-- 建立類與表的映射 -->
    <class name="com.jjxy.hibernate.Customer" table="cst_customer">
        <!-- 建立類中的屬性與表中的主鍵對應 -->
        <id name="cust_id" column="cust_id" >
            <!-- 主鍵的生成策略 -->
            <generator class="native"/>
        </id>
        <!-- 建立類中的普通的屬性和表的字段的對應 -->
        <property name="cust_name" column="cust_name" length="32" />
        <property name="cust_source" column="cust_source" length="32"/>
        <property name="cust_industry" column="cust_industry"/>
        <property name="cust_level" column="cust_level"/>
        <property name="cust_phone" column="cust_phone"/>
        <property name="cust_mobile" column="cust_mobile"/>
    </class>
</hibernate-mapping>

5、編寫核心配置文件hibernate.cfg.xml

       其中重要元素有:

      DOCTYPE:hibernate-core-5.0.7.Final.jar中的hibernate-configuration-3.0.dtd找到該聲明

      連接數據庫配置:可從下載的hibernate中的project\etc\hibernate.properties尋找

      指定方言:根據所用的數據庫來指定

      關聯hbm的配置文件:通過mapping的resource屬性將對象的映射加入到Hibernate的配置文件中

      可選配置:打印SQL語句、配置C3P0連接池 -->

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<!--核心配置-->
	<session-factory>
		<!--連接數據庫配置-->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">0000</property>
		<!-- 配置Hibernate的方言 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- 可選配置================ -->
		<!-- 打印SQL -->
		<property name="hibernate.show_sql">true</property>
		<!-- 格式化SQL -->
		<property name="hibernate.format_sql">true</property>
		<!-- 自動創建表 -->
		<!--
			none		:不使用hibernate的自動建表
		sessionFactory.close();做測試把工廠關閉
			create		:如果數據庫中已經有表,刪除原有表,重新創建,如果沒有表,新建表。(測試)
			create-drop	:如果數據庫中已經有表,刪除原有表,執行操作,刪除這個表。如果沒有表,新建一個,使用完了刪除該表。(測試)
			update		:如果數據庫中有表,使用原有表,如果沒有表,創建新表(更新表結構)
									        	例如:更改表中的字段的名,會添加新的一個屬性
			validate		:如果沒有表,不會創建表。只會使用數據庫中原有的表。(校驗映射和表結構)。
												例如:如果屬性錯誤,測試會報錯
		-->
		<property name="hibernate.hbm2ddl.auto">update</property>
		
		<!-- 自己 配置C3P0連接池 -->
		<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
		<!--在連接池中可用的數據庫連接的最少數目 -->
		<property name="c3p0.min_size">5</property>
		<!--在連接池中所有數據庫連接的最大數目  -->
		<property name="c3p0.max_size">20</property>
		<!--設定數據庫連接的過期時間,以秒爲單位,
		如果連接池中的某個數據庫連接處於空閒狀態的時間超過了timeout時間,就會從連接池中清除 -->
		<property name="c3p0.timeout">120</property>
		 <!--每3000秒檢查所有連接池中的空閒連接 以秒爲單位-->
		<property name="c3p0.idle_test_period">3000</property>
		<!--引入配置文件-->
		<mapping resource="com/jjxy/hibernate/Customer.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

6、基本配置結束,可以編寫測試類。

所用的資料來源於黑馬程序員教學課件,自己寫着總結一遍

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章