標籤:password 最大串連數 操作 .com model 指令碼 資料 結構 插入
下載 Hibernate ,開啟地址www.hibernate.org,點擊 Hibernate ORM -> Downloads 下載 4.3.11 版本,要使用Hibernate 需要把 Lib 下面的 required 目錄和 optional\c3p0 複製到網站的 WEB-INF\lib 目錄下,其中 required 目錄是 Hibernate 的必須庫;optional\c3p0 目錄是C3P0資料來源必須庫;將資料來源驅動也複製到 WEB-INF\lib 目錄下,如果是MySQL資料庫,可以到www.mysql.com網站下載。
- Hibernate 設定檔,可以使用 *.properties 屬性檔案,也可以使用XML檔案配置,下面使用XML檔案配置:
- 設定檔結構如下:
<?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="屬性名稱">屬性值</property>
…… 多個屬性配置 ????????
????????<mapping class="持久化類的類名稱"/>
…… 多個持久化類的類名稱
</session-factory>
</hibernate-configuration>
- property 說明
- C3P0 屬性名稱 connection.driver_class:指定串連資料庫所用的驅動,MySQL 樣本 com.mysql.jdbc.Driver
- C3P0 屬性名稱 connection.url:指定資料庫的串連 URL,MySQL樣本 jdbc:mysql://資料庫伺服器地址/資料庫名稱
- C3P0 屬性名稱 connection.username:資料庫登入使用者名稱稱
- C3P0 屬性名稱 connection.password:資料庫登入使用者密碼
- C3P0 屬性名稱 dialect:指定資料庫的方言,MySQL 樣本 org.hibernate.dialect.MySQLInnoDBDialect
- C3P0 屬性名稱 hibernate.c3p0.max_size:串連池裡最大串連數
- C3P0 屬性名稱 hibernate.c3p0.min_size:串連池裡最小串連數
- C3P0 屬性名稱 hibernate.c3p0.timeout:指定串連池裡連線逾時時間長度
- C3P0 屬性名稱 hibernate.c3p0.max_statements:指定串連池最大緩衝多少個 Statements
- C3P0 屬性名稱 hibernate.c3p0.idle_test_period:
- C3P0 屬性名稱 hibernate.c3p0.validate:
- 屬性名稱 show_sql:顯示 Hibernate 持久化產生的SQL
- 屬性名稱 hibernate.format_sql:將SQL指令碼進行格式化後再輸出
- 屬性名稱 hibernate.use_sql_comments:是否在Hibernate產生的SQL語句中添加有助於調試的注釋
- 屬性名稱 hibernate.jdbc.batch_size:指定JDBC2 批次更新的大小,整數值
- 屬性名稱 hbm2ddl.auto:對錶結構進行操作
- 值 create:每次載入hibernate時都會刪除上一次的產生的表,然後根據你的model類再重新來產生新表,哪怕兩次沒有任何改變也要這樣執行;
- 值 create-drop:每次載入hibernate時根據model類產生表,但是sessionFactory一關閉,表就自動刪除;
- 值 update:第一次載入hibernate時根據model類會自動建立起表的結構(前提是先建立好資料庫),以後載入hibernate時根據 model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到伺服器後,表結構是不會被馬上建立起來的,是要等應用第一次運行起來後才會;
- 值 validate:每次載入hibernate時,驗證建立資料庫表結構,只會和資料庫中的表進行比較,不會建立新表,但是會插入新值
- 屬性名稱 hibernate.current_session_context_class:設定 SessionFactory.getCurrentSession() 的底層實作類別型
- 值 thread:使用 org.hibernate.context.ThreadLocalSessionContext 實現,通過當前正在執行的線程來跟蹤和界定上下文相關的 Session
- 值 jta:使用 org.hibernate.context.JTASessionContext 實現,根據JTA來跟蹤和界定上下文相關的 Session
- 值 managed:org.hibernate.context.ManagedSessionContext 實現,通過當前執行的線程來跟蹤和界定上下文相關的Session,但程式需要使用整個類的靜態方法將Session執行個體綁定、取消綁定,他不會自動開啟、flush或者關閉
- mapping 說明
- 屬性 class:持久化類的類名稱
- 屬性 resource:持久化類的對應檔
??
??
筆記:Hibernate 架構配置說明