NHibernate小結之二

 這裏給出所有常用的數據庫配置文件,這樣不用再到官網找了,速度比較慢,國外的網站囉。

 

來源於官網的內容,這裏只是轉帖一下。

 

Microsoft SQL Server 2005/2000

  1. <?xml version="1.0" ?>
  2. <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
  3.     <session-factory>
  4.         <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
  5.         <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
  6.         <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
  7.         <property name="connection.connection_string">Server=(local);Initial Catalog=dbname;User Id=user;Password=********</property>
  8.     </session-factory>
  9. </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這個包,裏面也有,但版本就不知道會不會比較統一了,我感覺還是前者比較保險。

<?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.JetDriver.JetDialect, NHibernate.JetDriver</property>         <property name="connection.driver_class">NHibernate.JetDriver.JetDriver, NHibernate.JetDriver</property>         <property name="connection.connection_string">Provider=Microsoft.Jet.OLEDB.4.0;Data Source=YourDatabaseFilePathHere.mdb</property>     </session-factory> </hibernate-configuration>

======================================================

 

Firebird

 

從1.5.3版開始支持,強烈推薦2.0.1版。先要安裝最新的官方.net數據提供器(Firebird .NET Data Provider)。如果安裝到GAC(標準安裝的話),要加入下面的小節到程序配置文件中(App.config或者Web.config)

<runtime>     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">         <qualifyAssembly partialName="FirebirdSql.Data.FirebirdClient"             fullName="FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />     </assemblyBinding> </runtime>

fullname這裏要根據實際版本進行修改。下面給出一般配置文件

  1. <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
  2.     <session-factory name="NHibernate.Test">
  3.         <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
  4.         <property name="connection.driver_class">NHibernate.Driver.FirebirdClientDriver</property>
  5.         <property name="connection.isolation">ReadCommitted</property>
  6.         <property name="connection.connection_string">
  7.             Server=localhost;
  8.             Database=C:/nhibernate.fdb;
  9.             User=SYSDBA;Password=masterkey
  10.         </property>
  11.         <property name="show_sql">false</property>
  12.         <property name="dialect">NHibernate.Dialect.FirebirdDialect</property>
  13.         <property name="use_outer_join">true</property>
  14.         <property name="command_timeout">444</property>
  15.         <property name="query.substitutions">true 1, false 0, yes 1, no 0</property>
  16.     </session-factory>
  17. </hibernate-configuration>

=================================================

PostgreSQL

 

7.4版開始支持。

配置文件如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
  3.     <session-factory name="NHibernate.Test">
  4.         <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
  5.         <property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
  6.         <property name="connection.connection_string">
  7.             Server=localhost;initial catalog=nhibernate;User ID=nhibernate;Password=********;
  8.         </property>
  9.         <property name="dialect">NHibernate.Dialect.PostgreSQLDialect</property>
  10.     </session-factory>
  11. </hibernate-configuration>

=======================================================

 

DB2 UDB

 

好像支持的非常好,具體見http://nhibernate.sourceforge.net/forum/viewtopic.php?t=73。下面的配置用的stinger版的db2的odbc驅動,配置如下:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <hibernate-configuration xmlns="urn:nhibernate-configuration-2.0" >
  3.     <session-factory name="session">
  4.         <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
  5.         <property name="connection.driver_class">NHibernate.Driver.OdbcDriver</property>
  6.         <property name="connection.connection_string">driver={IBM DB2 ODBC DRIVER};Database=db;hosthostname=host;portport=port;protocol=TCPIPuiduid=uid; pwdpwd=pwd</property>
  7.         <property name="show_sql">true</property>
  8.         <property name="dialect">NHibernate.Dialect.DB2Dialect</property>
  9.         <property name="use_outer_join">true</property>
  10.         <mapping resource="..." />
  11.     
  12.     </session-factory>
  13. </hibernate-configuration>

=======================================================

 

MySQL

 

所有版本的都能用,除了零日期問題(mysql的DATE類型可以讓錯誤數據進來,特別是用0000-00-00作爲默認的DATE非空數據。而MySQL的連接器發現這個情況會拋出異常。

驅動當然去MySQL的官網下.net的驅動。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
  3.     <session-factory name="NHibernate.Test">
  4.         <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
  5.         <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
  6.         <property name="connection.connection_string">
  7.             Database=test;Data Source=someip;User Id=blah;Password=blah
  8.         </property>
  9.         <property name="dialect">NHibernate.Dialect.MySQLDialect</property>
  10.     </session-factory>
  11. </hibernate-configuration>

=======================================================

 

SQLite

 

推薦 version3版和http://sourceforge.net/projects/adodotnetsqlite提示器一起用。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
  3.     <session-factory name="NHibernate.Test">
  4.         <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
  5.         <property name="connection.driver_class">NHibernate.Driver.SQLiteDriver</property>
  6.         <property name="connection.connection_string">
  7.             Data Source=nhibernate.db;Version=3
  8.         </property>
  9.         <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
  10.         <property name="query.substitutions">true=1;false=0</property>
  11.     </session-factory>
  12. </hibernate-configuration>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章