Post

Hibernate Configuration

1. Configuration

Hibernate에서는 Java 클래스와 데이터베이스 테이블 간의 관계를 정의하는 매핑 정보를 찾을 위치를 미리 알아야 한다. Hibernate를 사용하려면 데이터베이스 및 기타 관련 매개 변수와 관련된 구성 설정 세트도 필요하다. 이러한 모든 정보는 일반적으로 hibernate.properties라는 표준 Java 속성 파일 또는 hibernate.cfg.xml이라는 XML 파일로 제공된다.

XML 형식의 파일 hibernate.cfg.xml을 고려하여 필요한 hibernate 속성을 예제에서 지정한다. 대부분의 속성은 기본값을 사용하므로 실제로 필요한 경우가 아니면 속성 파일에 지정할 필요가 없다. 이 파일은 응용프로그램의 클래스 경로의 루트 디렉터리에 보관된다.

2. Hibernate Properties

다음은 중요한 속성 목록이다. 독립 실행형 상황에서 데이터베이스를 구성해야 한다.

PropertiesDescription
hibernate.dialect이 속성은 Hibernate가 선택한 데이터베이스에 적합한 SQL을 생성하도록 함
hibernate.connection.driver_classJDBC 드라이버 클래스
hibernate.connection.url데이터베이스 인스턴스에 대한 JDBC URL
hibernate.connection.username데이터베이스 사용자 이름
hibernate.connection.password데이터베이스 암호
hibernate.connection.pool_sizeHibernate 데이터베이스 연결 풀에서 대기 중인 연결 수를 제한
hibernate.connection.autocommitJDBC 연결에 자동 커밋 모드를 사용

애플리케이션 서버 및 JNDI와 함께 데이터베이스를 사용하는 경우 다음 속성을 구성해야 한다.

PropertiesDescription
hibernate.connection.datasource응용프로그램에 사용 중인 응용프로그램 서버 컨텍스트에 정의된 JNDI 이름
hibernate.jndi.classJNDI의 InitialContext 클래스
hibernate.jndi.<JNDIpropertyname>원하는 JNDI property를 JNDI Initial Context로 전달
hibernate.jndi.urlJNDI의 URL을 제공
hibernate.connection.username데이터베이스 사용자 이름
hibernate.connection.password데이터베이스 암호

3. MySQL 데이터베이스를 사용한 Hibernate 예제

hibernate.cfg.xml 구성 파일을 생성하여 응용 프로그램의 클래스 경로 루트에 배치한다. MySQL 데이터베이스에서 testdb 데이터베이스를 사용할 수 있고 데이터베이스에 액세스할 수 있는 사용자 테스트가 있는지 확인해야 한다.

XML 구성 파일은 https://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd에서 제공되는 Hibernate 3 구성 DTD를 준수해야 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?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>

데이터베이스 dialect 속성 유형 목록이다.

DatabaseDialect Property
DB2org.hibernate.dialect.DB2Dialect
HSQLDBorg.hibernate.dialect.HSQLDialect
HypersonicSQLorg.hibernate.dialect.HSQLDialect
Informixorg.hibernate.dialect.InformixDialect
Ingresorg.hibernate.dialect.IngresDialect
Interbaseorg.hibernate.dialect.InterbaseDialect
Microsoft SQL Server 2000org.hibernate.dialect.SQLServerDialect
Microsoft SQL Server 2005org.hibernate.dialect.SQLServer2005Dialect
Microsoft SQL Server 2008org.hibernate.dialect.SQLServer2008Dialect
MySQLorg.hibernate.dialect.MySQLDialect
Oracle (any version)org.hibernate.dialect.OracleDialect
Oracle 11gorg.hibernate.dialect.Oracle10gDialect
Oracle 10gorg.hibernate.dialect.Oracle10gDialect
Oracle 9iorg.hibernate.dialect.Oracle9iDialect
PostgreSQLorg.hibernate.dialect.PostgreSQLDialect
Progressorg.hibernate.dialect.ProgressDialect
SAP DBorg.hibernate.dialect.SAPDBDialect
Sybaseorg.hibernate.dialect.SybaseDialect
Sybase Anywhereorg.hibernate.dialect.SybaseAnywhereDialect

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.