Hibernate配置

對Hibernate框架的學習

  • Hibernate 的執行流程
    1、配置文件 (hbm.xml 映射文件,建立對象和表的關係映射;.java 對象;.hibernate.cfg.xml(Hibernate的主配置文件))
    2、通過Configuration加載配置文件,準備hibernate的運行環境
    3、創建SessionFactory創建會話工廠,用於創建session
    4、通過sessionFactory創建session會話 通過session發出sql語句
    5、增刪改需要開啓事物,通過transaction提交或者回滾
    6、查詢操作,不需要開啓事物,通過query對象構造查詢條件查詢
    7、釋放資源

  • 在hbm.xml 文件下配置:

// hbm.xml的配置  先進行配置Hibernate的dtd約束
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-/Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernatre.org/dtd/hibernate-mapping-3.0.dtd">
<!--配置表和類的映射關係-->
<hibernate-mappin>
	<class name="類名" table="表名">
		<!--配置主鍵的映射-->
		<id name="類中的屬性名" type="屬性的類型">
			<column name="數據表的主鍵名"></column>
			<!-- identity自增;uuid(唯一字符串);assgiend(手動指定)-->
			<generator class="identity"></generator>
		</id>
		<!--普通的屬性和表的映射-->
		<property name="類的屬性名" type="string(Hibernatet提供的類型,不寫的話爲字符串)">
			<column name="表的字段的名稱" length="長度"></column>
		</property>
		。
		。
		。
		<!--使用工具去生成這些對應的關係-->
	</class>
</hibernate-mapping/>
// 配置主配置文件 hibernate.cfg.xml
// hbm.xml的配置  先進行配置Hibernate的dtd約束
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-/Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernatre.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-configuration>
<session_factory>
<!--配置hibernate的運行參數-->
	<!--數據庫方言,根據選擇的數據庫進行配置-->
	<property name="hibernat.dialect">org.hibernate.dialect.MySQL5Dialect</property>
	<!--數據庫連接url-->
	<property name="hibernate.connection.url"> jdbc:mysql://localhost:3306/text_hibernate</property>
	<!--加載數據庫的名稱和密碼-->
	<property name="hobernate.connection.username">root</property>
	<property name="hibernate.connection.password">123</property>
	<!--是否允許輸出sql語句-->
	<property name="hibernate-show_sql">true</property>
	<!--是否允許sql語句格式化-->
	<property name="hibernate.format_sql">true</property>
	<!--sql驅動-->
	<property name="hibernate.connection.driver_class">com.sql.jdbc.Driver</property>
	<!--自動補全-->
	<property name="hibernate.hbm2ddl.auto">none</property>
<!--加載hnm.xml的映射文件-->
	<mapping resource="cn/zhou/ hbm.xml" />
	</session-factory>
</hibernate-configuration>

QBC的研究和學習

QBC是按照條件查詢,通過Criteria構造查詢條件,即,通過使用Criteria的api進行去查詢。通過對象進行拼裝去查詢。Hibernate 通過所拼寫的對象生成sql語句!

// 通過Criteria對象去分組查詢
Criteria criteria=session.createCriteria(Castumer.class);
criteria.add(Restrictions.eq("",""));  //查詢的條件
criteria.add(Restrictions.like("","%內容%"));  //查詢的條件
//查詢單個投影列
criteria.setProjection(Projections.property("列名"))
List list=criteria.list();
//查詢多個投影列.
criteria.setProjection(Projections.projectionList().add(Projections.property("列名"))
.add(Projections.property("列名"))
.add(Projections.property("列名"))
);

//將結果封裝成對象object[]數組轉成對象
criteria.setResultTransformer(new AliasToBeanResultTransformer(Cstumer.class));
//記錄總數的查詢
criteria.setProjection(Projections.rowCount());
Long title=criteria.uniqueResult();

Log4j的學習

  • 使用log4j自定義輸出日誌信息
  • hibernate 默認使用的是slf4j框架
  • slf4提供了提了一套日誌接口的規範
    Log4j的使用步驟:
    1、在根目錄下添log4.properties
    2、將jar包導進去

Log4j包括三個主要部件:
記錄器:(Logger):配置日誌在哪記錄
輸出源:(Appender):配置輸出到哪裏
佈局:(Layouts):指定日誌輸出的格式
配置的內容:
log4j.rootLogger=debug,A
log4j.appender.A=org.apache.log4j.ConsoleAppender
在這裏插入圖片描述
log4j.appender.A.layout=org.apache.log4j.PatternLayout
在這裏插入圖片描述

日誌級別會將比 log4j.rootLogger=debug A (debug)高的輸出出來。

在開發結算將日誌級別設置成debug,生產期間設置成infor或error
//在查詢sql的時候可以將參數打印出來
log4j.logger.org.hibernate.type=TRACE

連接池c3p0

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 
<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.max_statements">100</property> 
<property name="hibernate.c3p0.idle_test_period">120</property> 
<property name="hibernate.c3p0.acquire_increment">2</property> 
發佈了22 篇原創文章 · 獲贊 6 · 訪問量 670
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章