NHibernate支持的数据库 NHibernate连接配置 hibernate.cfg.xml中的配置

使用下列数据库时hibernate.cfg.xml中的配置

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>

SQL2000的话更改方言为 NHibernate.Dialect.MsSql2000Dialect.

有个问题注意一下:SQL Server 如果不在SELECT中指选择列,则有时ORDER
BY子句会忽略这些特殊的列,而这种行为在标准SQL中有效的,对于举例来说,象这样查询是不保证正确的: from Person p order
by p.Company.Name

Oracle配置如下:

Oracle 9i 和 10g 都支持引用Microsoft driver (System.Data.OracleClient) 和 Oracle driver (Oracle.Data.OracleClient).

有个问题注意一下:当字符串参数中的长度在20000-4000时,微软驱动不能正确的处理长字符,另外Oracle不能接受空字符串,你可以使用
null来代替,在NhibernateContrib包的Nullables.Nhibernate类中的IUserType实现转换的问题

Microsoft Access配置如下:

Microsoft Access有自己的dialect和driver,在NHibernateContrib包里的NHibernate.JetDriver.dll中.

<?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

若要使用Firebird首先安装最新的火鸟.NET数据提供程序安装在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>

这里的version取决于你安装的版本。
<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>

2.0.1所有Firebird嵌入式函数和ib_udf2.sql用户定义函数均已包含在方言里了,这些函数可以直接在HQL使用。

PostgreSQL

建议使用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>

MySQL

<?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>

有个问题注意一下:MySQL有一个特殊的功能,允许在日期字段无效的日期,并没有NULL列,默认值是0000-00-00。当MySQL的连接
器遇到这样一个日期,它要么抛出一个异常或返回非标准MySqlDateTime对象(一个连接字符串参数而定)会抛出一个异常时,转换为
DateTime本身。
可能的变通办法:避免零日期;修改连接器(NET源代码),以随机或零日期DateTime.MinValue;创建MySqlDateTime用户类型(没有已知的实现目前);

SQLite

从http://sourceforge.net/projects/adodotnetsqlite下载using ADO.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.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>

时间: 2024-10-17 07:21:18

NHibernate支持的数据库 NHibernate连接配置 hibernate.cfg.xml中的配置的相关文章

Hibernate.cfg.xml文件的配置

1.  Hibernate配置 1.1.  可编程的配置方式 一个org.hibernate.cfg.Configuration 实例代表了一个应用程序中Java类型到SQL数据库映射的完整集合.Configuration被用来构建一个 SessionFactory. 映射定义则由不同的XML映射定义文件编译而来. 可以直接实例化Configuration来获取一个实例,并为它指定XML映射定义文件. 如果映射定义文件在类路径(classpath)中,请使用addResource(): Conf

配置hibernate.hbm.xml与配置hibernate.cfg.xml的头部一点小区别

配置hibernate.hbm.xml的头部是: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&g

java:Hibernate框架(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态)

1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configurati

hibernate.cfg.xml 中如何设置 hbm.xml 和 Annotations 的 mapping

在一个 Hibernate 项目中,我们需要同时设置 hbm.xml 和 Annotations 的 mapping 这种情况 hibernate.cfg.xml 如何配置? 其实 hibernate.cfg.xml 中是可以同时设置 hbm.xml 和 Annotations 的. 例如下面的配置: <mapping class="com.ossez.covid19.common.models.Covid19Current"/> <mapping resource=

Hibernate框架 主配置文件(Hibernate.cfg.xml) 映射配置 说明

Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\project\etc\hibernate.properties   <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hiber

【Hibernate学习笔记-4】在hibernate.cfg.xml中配置C3P0数据源

jar包 hibernate.cfg.xml <?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.d

Hibernate框架hibernate.cfg.xml配置文件,配置自动生成表结构策略。

<property name="hbm2ddl.auto"></property> key -- hbm2ddl.auto:自动生成表结构策略 value -- update(使用最多):当数据库不存在表时,hibernate启动后会自动生成表结构. 当数据库表存在时,如果一样,则只会写入数据,不会改变表结构. 当数据库表存在时,如果不一样,则会修改表结构,原有的表结构不会改变.  create(很少):无论表结构是否存在,hibernate启动后都会重新生成表

hibernate 配置 hibernate.cfg.xml

1 <?xml version='1.0' encoding='UTF-8'?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 5 <!-- Generated

Hibernate基础配置——hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"           "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <!--