質問

これがmysqlの構成ファイルです:

<hibernate-configuration>
  <session-factory>
    <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">zgy01</property>
    <property name="hibernate.connection.pool_size">100</property>
    <property name="show_sql">false</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

    <!-- Mapping files -->
    <mapping resource="model.hbm.xml"/>

  </session-factory>
</hibernate-configuration>

SQL Server 2005に何を指定しますか?私はこのようにやった:

<hibernate-configuration>
  <session-factory>
    <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
    <property name="hibernate.connection.url">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
    <property name="hibernate.connection.username">sa</property>
    <property name="hibernate.connection.password">lal</property>
    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

    <property name="hibernate.connection.pool_size">100</property>        
    <property name="show_sql">false</property>

    <!-- Mapping files -->
    <mapping resource="model.hbm.xml"/>

  </session-factory>
</hibernate-configuration>

私の質問は、私が接続しなければならないデータベースを指定する方法です。

mysqlでは、以前はこのようにしていました。

<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property> 
役に立ちましたか?

解決

あるプロパティ データベース固有 それは:

  • hibernate.connection.driver_class: :JDBCドライバークラス
  • hibernate.connection.url: :JDBC URL
  • hibernate.connection.username: :データベースユーザー
  • hibernate.connection.password: :データベースパスワード
  • hibernate.dialect: :冬眠のクラス名 org.hibernate.dialect.Dialect これにより、Hibernateは特定のリレーショナルデータベースに最適化されたSQLを生成できます。

データベースを変更するには、次のことが必要です。

  1. クラスパスのデータベースに適切なJDBCドライバーを提供し、
  2. JDBCプロパティを変更します(ドライバー、URL、ユーザー、パスワード)
  3. 変更 Dialect Hibernateがデータベースと通信するために使用します

SQL Serverに接続する2つのドライバーがあります。オープンソース JTDS そしてマイクロソフトのもの。ドライバークラスとJDBC URLは、使用するものによって異なります。

JTDSドライバーと

ドライバークラス名はです net.sourceforge.jtds.jdbc.Driver.

SQLServerのURL形式は次のとおりです。

 jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]]

したがって、Hibernate構成は次のようになります(スキップできることに注意してください hibernate. プロパティのプレフィックス):

<hibernate-configuration>
  <session-factory>
    <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
    <property name="connection.url">jdbc:jtds:sqlserver://<server>[:<port>][/<database>]</property>
    <property name="connection.username">sa</property>
    <property name="connection.password">lal</property>

    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

    ...
  </session-factory>
</hibernate-configuration>

Microsoft SQL Server JDBC 3.0で:

ドライバークラス名はです com.microsoft.sqlserver.jdbc.SQLServerDriver.

URL形式は次のとおりです。

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

したがって、冬眠構成は次のようになります。

<hibernate-configuration>
  <session-factory>
    <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
    <property name="connection.url">jdbc:sqlserver://[serverName[\instanceName][:portNumber]];databaseName=<databaseName></property>
    <property name="connection.username">sa</property>
    <property name="connection.password">lal</property>

    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

    ...
  </session-factory>
</hibernate-configuration>

参照

他のヒント

接続URLは、SQL Serverの場合は次のようになります。

jdbc:sqlserver://serverName[\instanceName][:port][;databaseName=your_db_name]

例:

jdbc:sqlserver://localhost
jdbc:sqlserver://127.0.0.1\INGESQL:1433;databaseName=datatest
...

また、sqserver:dboのデフォルトスキーマについても言及する必要があります

<property name="hibernate.default_schema">dbo</property>

Hibernate 4でテストしました

SQL Server構成ツールでTCP/IP接続を有効にすることを忘れないでください

最後にこれが向上します Hibernate 5Tomcat.

上記のすべての答えをまとめて、魅力のように機能する私のヒントを追加しました Hibernate 5 and SQL Server 2014.

<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">
   org.hibernate.dialect.SQLServerDialect
</property>
<property name="hibernate.connection.driver_class">
   com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="hibernate.connection.url">  
jdbc:sqlserver://localhost\ServerInstanceOrServerName:1433;databaseName=DATABASE_NAME 
</property>
<property name="hibernate.default_schema">theSchemaNameUsuallydbo</property>
<property name="hibernate.connection.username">
   YourUsername
</property>
<property name="hibernate.connection.password">
   YourPasswordForMSSQL
</property>

jarを含めて識別できない場合に備えて、jarファイルをWeb-inf libの下に保管してください。

私の場合、すべてが大丈夫だったが、ドライバークラスをロードすることができなかった。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top