A-A+

NHibernate3.3.3与Oracle11g构建开发环境

2014年12月03日 技术 暂无评论 阅读 1,217 次

前往官网下载NHibernate3.3.3和Oracle11g的安装包,需要注意的是下载Oracle11g时需要注册并且同意它的许可声明。

安装Oracle11g之前,需要将下载的压缩包解压,这里的压缩包有两个,需要将两个压缩包内的“database”文件夹合并为一个,如果条件允许建议解压后的文件夹路径全部由英文字符组成,database文件夹的目录结构如下图所示:

Oracle_SetUp_Folder

点击上图中的setup.exe开始安装,安装过程中需要注意:

1.如果只是安装开发环境,在“系统类”界面选择“桌面类”即可。

2.在安装完成的界面,不要急于退出,点击弹出对话框中的“口令管理”开启所需用户。如果不慎关闭,造成无法登录,需要在CMD窗口输入以下命令修改sys的密码:

  1. sqlplus /nolog
  2. conn / as sysdba
  3. alter user sys identified by 123;

3.如果在安装或者配置数据库时,弹出警告“监听程序未启动或数据库服务未注册到该监听程序”,如果是英文的也大概是这个意思,你需要关闭程序,然后打开Oracle的“Net Manager”应用程序,在“服务命名”和“监听程序”中分别添加新地址,主机名称处填写计算机名称或真实IP,然后重启“OracleOraDb11g_home1TNSListener”服务,应该可以解决问题。

4.SQL Developer如果打不开或者找不到,可以至其官网下载,下载地址为:http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html。如果下载的是“Windows 64-bit - zip file includes the JDK 7”,解压后就可以直接使用。

NHibernate连接Oracle脱离不了ODAC,如果开发环境是独立服务器,可以在Oracle的安装目录下($\11.2.0\dbhome_1\ODP.NET\bin\2.x)找到Oracle.DataAccess.dll。不过推荐至其官网下载安装包,下载地址为:http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html。虽然个头有些大,但是好处也是有的:

1.非独立服务器,开发机独立安装此包即可。

2.里面包含支持.NET Framework4的版本(Oracle.DataAccess.dll)。

NHibernate3.3.3连接Oracle11g需要注意的是(以VS2013为例):

1.所属工程需要引用Oracle.DataAccess.dll。

2.配置文件模板如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  3.   <session-factory name="DashBoard">
  4.     <!-- properties -->
  5.     <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
  6.     <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
  7.     <property name="connection.connection_string">Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=PC1)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DashBoard)));user id=test;password=123;</property>
  8.     <property name="show_sql">false</property>
  9.     <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
  10.     <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
  11.     <property name="current_session_context_class">managed_web</property>
  12.     <property name="proxyfactory.factory_class">NHibernate.Bytecode.DefaultProxyFactoryFactory</property>
  13.     <property name="hbm2ddl.keywords">none</property>
  14.     <!-- mapping files -->
  15.     <mapping assembly="DashBoard.DAO" />
  16.   </session-factory>
  17. </hibernate-configuration>

3.上面配置文件中的“dialect”不用改为11g,否则编译不过去;如果使用NHibernate.Dialect.OracleDialect,同样编译不过去。

4.上面配置文件中的"hbm2ddl.keywords"应该是不可缺少的,缺了运行时就会报错。

5.使用时需要注意区分操作系统是X64还是X86,因为Oracle.DataAccess.dll会去寻找其它组件,而且不太智能。所以用VS开发的人员需要注意了,如果VS安装的是X86的(好像只有X86吧,不太确定),而ODAC安装的是X64的,那么就别直接调试运行了,肯定会报错的。

基本上至此,一个独立的开发环境就算配置完成了,如果遇到其它问题欢迎补充。

哼哼的泰迪熊

给我留言

Copyright © 字痕随行 保留所有权利.   Theme  Ality 京ICP备14039894号

用户登录

分享到: