Java >> Java チュートリアル >  >> Tag >> Jdbc

Hibernate での JDBC 接続と方言の構成

永続レイヤーをデータベースに接続するには、データ ソースを構成するか、JDBC 接続ドライバー、URL、およびログイン情報を Hibernate に直接提供する必要があります。それに加えて、Hibernate は、SQL ステートメントを生成するために使用するデータベース固有の方言を知る必要があります。 Hibernate は、構成された JDBC 接続に基づいてダイアレクトを検出するか、構成パラメーターとして提供することができます。

このすべての情報は、persistence.xml で設定できます。Spring Data JPA を使用している場合は、application.properties ファイルで設定できます。以下のセクションでは、最も一般的に使用される RDBMS の構成例を提供する前に、さまざまな構成パラメーターについて簡単に説明します。

構成パラメータ

データ ソース

接続プールを使用する場合、その JNDI 名を JTA データ ソース (Java Transaction API に準拠している場合) または非 JTA データ ソースとして参照できます。

<persistence>
    <! – Define persistence unit – >
    <persistence-unit name="my-persistence-unit">
        <jta-data-source>java:app/jdbc/MyDataSource</jta-data-source>
    </persistence-unit>
</persistence>

データベースへの接続は、接続プールですでに構成されています。したがって、Hibernate 構成で JDBC ドライバー、URL、およびユーザー情報を設定する必要はありません。ただし、方言を構成したい場合があります。

JDBC 接続

次の構成パラメーターを使用して、Hibernate で JDBC 接続を構成できます。

  • javax.persistence.jdbc.driver – JDBC ドライバーの完全修飾クラス名
  • javax.persistence.jdbc.url – データベースの接続 URL
  • javax.persistence.jdbc.user – データベースにログインするためのユーザー名
  • javax.persistence.jdbc.password – データベースにログインするためのパスワード

次の構成スニペットでは、これらのパラメーターを使用して PostgreSQL データベースに接続します jpaForBeginners postgres を使用して localhost で ユーザー名とパスワードとして。

<persistence>
    <persistence-unit name="my-persistence-unit">
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/jpaForBeginners" />
            <property name="javax.persistence.jdbc.user" value="postgres" />
            <property name="javax.persistence.jdbc.password" value="postgres" />
        </properties>
    </persistence-unit>
</persistence>

冬眠方言

Hibernate は方言を使用して、サポートされているさまざまな RDBMS の機能セットと構文の違いに適応します。たとえば、ダイアレクトは、サポートされる関数、データ型をマップする方法、およびデフォルトで Hibernate がシーケンスまたは自動インクリメント データベース列を使用して主キー値を生成するかどうかを定義します。

Hibernate は、一般的な RDBMS のさまざまなバージョンをサポートするために、膨大な方言実装のセットを提供します。それらは org.hibernate.dialect パッケージにあります。 .実装の完全修飾クラス名を org.hibernate.dialect.Dialect として設定することにより、使用する方言を指定できます。 構成プロパティ。

1 つの RDBMS のみをサポートする必要がある場合は、Hibernate が構成された JDBC 接続に基づいて方言を自動的に検出できるとしても、この構成パラメーターを設定することをお勧めします。

一般的に使用されるデータベースの構成値

最も一般的に使用されるデータベースの構成例をアルファベット順にリストします。これらの設定はすべて jpaForBeginners に接続します localhost のデフォルト ポートで実行されるデータベース。提供された構成に加えて、ユーザー名とパスワードも設定する必要があります。

ゴキブリDB

以前の記事で説明したように、Hibernate 5.4.19 には CockroachDB 方言が追加されました。 JDBC レベルでは、引き続き PostgreSQL ドライバーを使用します。

javax.persistence.jdbc.driver = org.postgresql.Driver
javax.persistence.jdbc.url = jdbc:postgresql://localhost:26257/jpaForBeginners?sslmode=disable
org.hibernate.dialect.Dialect = org.hibernate.dialect.CockroachDB201Dialect

ダービー

javax.persistence.jdbc.driver = org.apache.derby.jdbc.EmbeddedDriver
javax.persistence.jdbc.url = jdbc:derby:target/tmp/derby/jfb;databaseName=jpaForBeginners;create=true
org.hibernate.dialect.Dialect = org.hibernate.dialect.DerbyTenSevenDialect

Db2 Express-C

javax.persistence.jdbc.driver = com.ibm.db2.jcc.DB2Driver
javax.persistence.jdbc.url = jdbc:db2://localhost/jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.DB297Dialect

火の鳥

javax.persistence.jdbc.driver = org.firebirdsql.jdbc.FBDriver
javax.persistence.jdbc.url = jdbc:firebirdsql://localhost:3050/c:/wrk/myProject/db/jpaForBeginners.fdb
org.hibernate.dialect.Dialect = org.hibernate.dialect.FirebirdDialect

H2

javax.persistence.jdbc.driver = org.hsqldb.jdbc.JDBCDriver
javax.persistence.jdbc.url = jdbc:h2:mem:jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.H2Dialect

HSQLDB

javax.persistence.jdbc.driver = org.hsqldb.jdbc.JDBCDriver
javax.persistence.jdbc.url = jdbc:hsqldb:mem:jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.HSQLDialect

Informix

javax.persistence.jdbc.driver = com.informix.jdbc.IfxDriver
javax.persistence.jdbc.url = jdbc:informix-sqli://localhost:9088/sysuser:INFORMIXSERVER=jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.Informix10Dialect

マリアDB

javax.persistence.jdbc.driver = org.mariadb.jdbc.Driver
javax.persistence.jdbc.url = jdbc:mariadb://localhost/jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.MariaDB103Dialect

MySQL

MySQL は人気のあるオープン ソース データベースであり、いくつかの興味深い独自機能を提供しますが、いくつかの制限もあります。 Mysql で Hibernate を使用する際に知っておくべき 5 つの事柄で、そのすべてを詳しく説明しています。

javax.persistence.jdbc.driver = com.mysql.jdbc.Driver
javax.persistence.jdbc.url = jdbc:mysql://localhost/jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.MySQL8Dialect

オラクル

javax.persistence.jdbc.driver = oracle.jdbc.OracleDriver
javax.persistence.jdbc.url = jdbc:oracle:thin:@localhost:1521:jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.Oracle12cDialect

PostgreSQL

PostgreSQL は機能豊富なオープンソース データベースです。それを最大限に活用し、Hibernate with PostgreSQL で最も興味深い独自の機能のいくつかを使用する方法を説明しました – 知っておくべき 6 つのこと.

javax.persistence.jdbc.driver = org.postgresql.Driver
javax.persistence.jdbc.url = jdbc:postgresql://localhost/jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.PostgreSQL95Dialect

SAP HANA

javax.persistence.jdbc.driver = com.sap.db.jdbc.Driver
javax.persistence.jdbc.url = 		jdbc:sap://localhost/jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.HANAColumnStoreDialect

SQL サーバー

javax.persistence.jdbc.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
javax.persistence.jdbc.url = 	jdbc:sqlserver://localhost;instance=SQLEXPRESS;databaseName=jpaForBeginners
org.hibernate.dialect.Dialect = org.hibernate.dialect.SQLServer2012Dialect

No
Java タグ