Voici le fichier de configuration pour 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>
Que spécifier pour SQL Server 2005? Je l'ai fait comme ça:
<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>
Ma question plus précisément est comment spécifier la base de données à laquelle je dois me connecter?
Dans MySQL, je faisais comme ça:
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
Les propriétés qui sont spécifiques à la base de données sont les suivantes:
hibernate.connection.driver_class
: classe de pilote JDBChibernate.connection.url
: URL JDBChibernate.connection.username
: utilisateur de la base de donnéeshibernate.connection.password
: mot de passe de la base de donnéeshibernate.dialect
: nom de classe d'un Hibernate org.hibernate.dialect.Dialect
permettant à Hibernate de générer du SQL optimisé pour une base de données relationnelle particulière. Pour changer de base de données, vous devez:
Dialect
utilisée par Hibernate pour parler à la base de donnéesIl existe deux pilotes pour se connecter à SQL Server. l'open source jTDS et celui de Microsoft. La classe de pilote et l'URL JDBC dépendent de celle que vous utilisez.
Le nom de la classe de pilote est net.sourceforge.jtds.jdbc.Driver
.
Le format de l'URL pour sqlserver est:
jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]]
Ainsi, la configuration d'Hibernate ressemblerait à ceci (notez que vous pouvez ignorer le préfixe hibernate.
dans les propriétés):
<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>
Le nom de la classe de pilote est com.Microsoft.sqlserver.jdbc.SQLServerDriver
.
Le format de l'URL est:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
Donc, la configuration d'Hibernate ressemblerait à ceci:
<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>
L'URL de connexion devrait ressembler à ceci pour SQL Server:
jdbc:sqlserver://serverName[\instanceName][:port][;databaseName=your_db_name]
Exemples:
jdbc:sqlserver://localhost
jdbc:sqlserver://127.0.0.1\INGESQL:1433;databaseName=datatest
...
Nous devons également mentionner le schéma par défaut pour SQSERVER: dbo
<property name="hibernate.default_schema">dbo</property>
Testé avec Hibernate 4
N'oubliez pas d'activer les connexions TCP/IP dans les outils de configuration de SQL SERVER.
Enfin, ceci est pour Hibernate 5
dans Tomcat
.
Compilé toutes les réponses de ce qui précède et ajouté mes conseils qui fonctionnent comme un charme pour 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>
Conservez les fichiers jar sous la bibliothèque Web-inf. Si vous avez inclus le fichier jar, il ne pourra pas l'identifier.
Cela a fonctionné dans mon cas où tout allait bien mais il n'a pas été possible de charger la classe de pilote.