這裏給出所有常用的數據庫配置文件,這樣不用再到官網找了,速度比較慢,國外的網站囉。
來源於官網的內容,這裏只是轉帖一下。
Microsoft SQL Server 2005/2000
- <?xml version="1.0" ?>
- <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
- <session-factory>
- <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
- <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
- <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
- <property name="connection.connection_string">Server=(local);Initial Catalog=dbname;User Id=user;Password=********</property>
- </session-factory>
- </hibernate-configuration>
如果用2000的話,對應的dialect 改爲NHibernate.Dialect.MsSql2000Dialect即可。
====================================================
Oracle
支持9i和10g兩個版本。驅動用微軟的System.Data.OracleClient或者官方的Oracle.Data.OracleClient都可以。
====================================================
Access
驅動在Nhibernate.JetDriver.dll裏面,這個在NHibernate1.21版的非MSI安裝包的下載中有,就是一個zip包的,裏面有。另外如果單獨下NHibernateContrib這個包,裏面也有,但版本就不知道會不會比較統一了,我感覺還是前者比較保險。
======================================================
Firebird
從1.5.3版開始支持,強烈推薦2.0.1版。先要安裝最新的官方.net數據提供器(Firebird .NET Data Provider)。如果安裝到GAC(標準安裝的話),要加入下面的小節到程序配置文件中(App.config或者Web.config)
fullname這裏要根據實際版本進行修改。下面給出一般配置文件
- <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
- <session-factory name="NHibernate.Test">
- <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
- <property name="connection.driver_class">NHibernate.Driver.FirebirdClientDriver</property>
- <property name="connection.isolation">ReadCommitted</property>
- <property name="connection.connection_string">
- Server=localhost;
- Database=C:/nhibernate.fdb;
- User=SYSDBA;Password=masterkey
- </property>
- <property name="show_sql">false</property>
- <property name="dialect">NHibernate.Dialect.FirebirdDialect</property>
- <property name="use_outer_join">true</property>
- <property name="command_timeout">444</property>
- <property name="query.substitutions">true 1, false 0, yes 1, no 0</property>
- </session-factory>
- </hibernate-configuration>
=================================================
PostgreSQL
7.4版開始支持。
配置文件如下:
- <?xml version="1.0" encoding="utf-8"?>
- <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
- <session-factory name="NHibernate.Test">
- <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
- <property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
- <property name="connection.connection_string">
- Server=localhost;initial catalog=nhibernate;User ID=nhibernate;Password=********;
- </property>
- <property name="dialect">NHibernate.Dialect.PostgreSQLDialect</property>
- </session-factory>
- </hibernate-configuration>
=======================================================
DB2 UDB
好像支持的非常好,具體見http://nhibernate.sourceforge.net/forum/viewtopic.php?t=73。下面的配置用的stinger版的db2的odbc驅動,配置如下:
- <?xml version="1.0" encoding="utf-8" ?>
- <hibernate-configuration xmlns="urn:nhibernate-configuration-2.0" >
- <session-factory name="session">
- <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
- <property name="connection.driver_class">NHibernate.Driver.OdbcDriver</property>
- <property name="connection.connection_string">driver={IBM DB2 ODBC DRIVER};Database=db;hosthostname=host;portport=port;protocol=TCPIP; uiduid=uid; pwdpwd=pwd</property>
- <property name="show_sql">true</property>
- <property name="dialect">NHibernate.Dialect.DB2Dialect</property>
- <property name="use_outer_join">true</property>
- <mapping resource="..." />
- </session-factory>
- </hibernate-configuration>
=======================================================
MySQL
所有版本的都能用,除了零日期問題(mysql的DATE類型可以讓錯誤數據進來,特別是用0000-00-00作爲默認的DATE非空數據。而MySQL的連接器發現這個情況會拋出異常。
驅動當然去MySQL的官網下.net的驅動。
- <?xml version="1.0" encoding="utf-8"?>
- <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
- <session-factory name="NHibernate.Test">
- <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
- <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
- <property name="connection.connection_string">
- Database=test;Data Source=someip;User Id=blah;Password=blah
- </property>
- <property name="dialect">NHibernate.Dialect.MySQLDialect</property>
- </session-factory>
- </hibernate-configuration>
=======================================================
SQLite
推薦 version3版和http://sourceforge.net/projects/adodotnetsqlite提示器一起用。
- <?xml version="1.0" encoding="utf-8"?>
- <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
- <session-factory name="NHibernate.Test">
- <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
- <property name="connection.driver_class">NHibernate.Driver.SQLiteDriver</property>
- <property name="connection.connection_string">
- Data Source=nhibernate.db;Version=3
- </property>
- <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
- <property name="query.substitutions">true=1;false=0</property>
- </session-factory>
- </hibernate-configuration>