ไฮเบอร์เนต - การกำหนดค่า

ไฮเบอร์เนตจำเป็นต้องทราบล่วงหน้า - จะค้นหาข้อมูลการแมปที่กำหนดว่าคลาส Java ของคุณเกี่ยวข้องกับตารางฐานข้อมูลอย่างไร ไฮเบอร์เนตยังต้องการชุดการตั้งค่าคอนฟิกที่เกี่ยวข้องกับฐานข้อมูลและพารามิเตอร์อื่น ๆ ที่เกี่ยวข้อง ข้อมูลดังกล่าวทั้งหมดมักจัดให้เป็นไฟล์คุณสมบัติ Java มาตรฐานที่เรียกว่าhibernate.propertiesหรือเป็นไฟล์ XML ชื่อ hibernate.cfg.xml.

ฉันจะพิจารณาไฟล์ที่จัดรูปแบบ XML hibernate.cfg.xmlเพื่อระบุคุณสมบัติไฮเบอร์เนตที่จำเป็นในตัวอย่างของฉัน คุณสมบัติส่วนใหญ่ใช้ค่าดีฟอลต์และไม่จำเป็นต้องระบุไว้ในไฟล์คุณสมบัติเว้นแต่ว่าจำเป็นจริงๆ ไฟล์นี้ถูกเก็บไว้ในไดเร็กทอรีรากของคลาสพา ธ ของแอปพลิเคชันของคุณ

คุณสมบัติไฮเบอร์เนต

ต่อไปนี้เป็นรายการคุณสมบัติที่สำคัญคุณจะต้องกำหนดค่าสำหรับฐานข้อมูลในสถานการณ์แบบสแตนด์อโลน -

ซีเนียร์ คุณสมบัติและคำอธิบาย
1

hibernate.dialect

คุณสมบัตินี้ทำให้ Hibernate สร้าง SQL ที่เหมาะสมสำหรับฐานข้อมูลที่เลือก

2

hibernate.connection.driver_class

คลาสไดรเวอร์ JDBC

3

hibernate.connection.url

JDBC URL ไปยังอินสแตนซ์ฐานข้อมูล

4

hibernate.connection.username

ชื่อผู้ใช้ฐานข้อมูล

5

hibernate.connection.password

รหัสผ่านฐานข้อมูล

6

hibernate.connection.pool_size

จำกัด จำนวนการเชื่อมต่อที่รออยู่ในกลุ่มการเชื่อมต่อฐานข้อมูลไฮเบอร์เนต

7

hibernate.connection.autocommit

อนุญาตให้ใช้โหมด autocommit สำหรับการเชื่อมต่อ JDBC

หากคุณใช้ฐานข้อมูลร่วมกับแอ็พพลิเคชันเซิร์ฟเวอร์และ JNDI คุณจะต้องกำหนดค่าคุณสมบัติต่อไปนี้ -

ซีเนียร์ คุณสมบัติและคำอธิบาย
1

hibernate.connection.datasource

ชื่อ JNDI ที่กำหนดในบริบทแอ็พพลิเคชันเซิร์ฟเวอร์ซึ่งคุณกำลังใช้สำหรับแอ็พพลิเคชัน

2

hibernate.jndi.class

คลาส InitialContext สำหรับ JNDI

3

hibernate.jndi.<JNDIpropertyname>

ผ่านคุณสมบัติ JNDI ใด ๆ ที่คุณชอบไป JNDI InitialContext

4

hibernate.jndi.url

ระบุ URL สำหรับ JNDI

5

hibernate.connection.username

ชื่อผู้ใช้ฐานข้อมูล

6

hibernate.connection.password

รหัสผ่านฐานข้อมูล

ไฮเบอร์เนตด้วยฐานข้อมูล MySQL

MySQL เป็นระบบฐานข้อมูลแบบโอเพนซอร์สที่ได้รับความนิยมมากที่สุดในปัจจุบัน ให้เราสร้างhibernate.cfg.xmlไฟล์การกำหนดค่าและวางไว้ในรูทของ classpath ของแอปพลิเคชันของคุณ คุณจะต้องแน่ใจว่าคุณมีtestdb ฐานข้อมูลที่มีอยู่ในฐานข้อมูล MySQL ของคุณและคุณมีผู้ใช้ test สามารถเข้าถึงฐานข้อมูลได้

ไฟล์คอนฟิกูเรชัน XML ต้องเป็นไปตาม Hibernate 3 Configuration DTD ซึ่งมีอยู่ที่ http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd.

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
   <session-factory>
   
      <property name = "hibernate.dialect">
         org.hibernate.dialect.MySQLDialect
      </property>
      
      <property name = "hibernate.connection.driver_class">
         com.mysql.jdbc.Driver
      </property>
      
      <!-- Assume test is the database name -->
      
      <property name = "hibernate.connection.url">
         jdbc:mysql://localhost/test
      </property>
      
      <property name = "hibernate.connection.username">
         root
      </property>
      
      <property name = "hibernate.connection.password">
         root123
      </property>
      
      <!-- List of XML mapping files -->
      <mapping resource = "Employee.hbm.xml"/>
      
   </session-factory>
</hibernate-configuration>

ไฟล์การกำหนดค่าข้างต้นประกอบด้วย <mapping> แท็กซึ่งเกี่ยวข้องกับไฟล์ hibernatemapping และเราจะเห็นในบทถัดไปว่าไฟล์การแมปไฮเบอร์เนตคืออะไรและเราใช้มันอย่างไรและทำไม?

ต่อไปนี้เป็นรายการประเภทคุณสมบัติของฐานข้อมูลที่สำคัญต่างๆ -

ซีเนียร์ ฐานข้อมูลและภาษาถิ่น
1

DB2

org.hibernate.dialect.DB2Dialect

2

HSQLDB

org.hibernate.dialect.HSQLDialect

3

HypersonicSQL

org.hibernate.dialect.HSQLDialect

4

Informix

org.hibernate.dialect.InformixDialect

5

Ingres

org.hibernate.dialect.IngresDialect

6

Interbase

org.hibernate.dialect.InterbaseDialect

7

Microsoft SQL Server 2000

org.hibernate.dialect.SQLServerDialect

8

Microsoft SQL Server 2005

org.hibernate.dialect.SQLServer2005Dialect

9

Microsoft SQL Server 2008

org.hibernate.dialect.SQLServer2008Dialect

10

MySQL

org.hibernate.dialect.MySQLDialect

11

Oracle (any version)

org.hibernate.dialect.OracleDialect

12

Oracle 11g

org.hibernate.dialect.Oracle10gDialect

13

Oracle 10g

org.hibernate.dialect.Oracle10gDialect

14

Oracle 9i

org.hibernate.dialect.Oracle9iDialect

15

PostgreSQL

org.hibernate.dialect.PostgreSQLDialect

16

Progress

org.hibernate.dialect.ProgressDialect

17

SAP DB

org.hibernate.dialect.SAPDBDialect

18

Sybase

org.hibernate.dialect.SybaseDialect

19

Sybase Anywhere

org.hibernate.dialect.SybaseAnywhereDialect