visual studio 2017使用NHibernate4.0连接oracle11g数据库

摘要:
开发环境:visual studio 2017Pro+oracle11g+NHibernate 4.0.0.400000运行环境:windows10Pro I。NET环境--这里,我们需要使用oracle公司官方网站提供的客户端驱动程序[我使用的版本是:32bit ODTwithODAC112012。zip]。在Microsoft framework 4.0之后,我们删除了oracle连接dll-˃NHibernate。驾驶员OracleClientDriverNHibernate.Dlectric.Oracle10gDialectric˂!

   之前一直是公司用NHibernate2.1来做项目,连接oracle 10g的数据库,配置NHibernate的东西都是以前的同事做好了的,也怪自己太懒了,没尝试过配置这个东西,虽然一直在使用NHibernate做项目,前几天突然有想法想用NHibernate自己做一个项目,才发现配置一个NHibernate并没有想象中的简单,前前后后大概花了五天时间,也算是功德圆满,终于成功了!另外,网上找到的关于NHibernate的资料,大多数都是配置sql server数据库的,关于oracle这方面的资料也是实在是少,以免大家少走弯路,写个关于oracle的配置文章!

  开发环境:   visual  studio 2017 Pro+oracle 11g(64bit)+NHibernate 4.0.0.4000

  运行环境:  windows 10  Pro (64bit)

一、前言

      NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。

在项目中安装NHibernate 4,我使用的是NuGet下载安装到我的项目中的;

项目结构:

visual studio 2017使用NHibernate4.0连接oracle11g数据库第1张

NuGet安装NHibernate

第一步

visual studio 2017使用NHibernate4.0连接oracle11g数据库第2张

第二步,在浏览下输入你要添加的引用,在要添加引用的项目上打上勾  

visual studio 2017使用NHibernate4.0连接oracle11g数据库第3张

二、oracle配置 

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory name="NHibernateConfig">
    <!--此处需要使用oracle公司官网提供的客户端驱动[我使用的版本为:32bit的ODTwithODAC112012.zip],微软framework4.0之后就移除了oracle连接dll-->
    <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
    <!--配置连接Oracle数据库字符串-->
    <property name="connection.connection_string">
      User ID=informix;Password=gmgl;Data Source=glxt
    </property>
    <!--输出所有SQL语句到控制台-->
    <property name="show_sql">true</property>
    <!--dialect属性支持的方言选项值-->
    <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
    <!--将Hibernate查询中的符号映射到SQL查询中的符号-->
    <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
    <mapping assembly="informix.Model" /><!--此处指向的是项目Model层的程序集-->
  </session-factory>
</hibernate-configuration>

安装好NHibernate之后,把E:informixpackagesNHibernate.4.0.0.4000ConfigurationTemplates下的Oracle.cfg.xml模板拷出来,然后放到你的Bin文件夹下,配置文件内容,如上,

特别需要注意的是属性:

<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
属性dialect的值NHibernate.Dialect.Oracle10gDialect可以连接 oracle 10g,也可以连接oracle 11g的数据库,这点跟java的Hibernate是一样的
更多的属性配置见链接 http://www.cnblogs.com/siyunianhua/p/6794016.html

三、 Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio(简称ODTwithODAC)安装与visual  studio 2017通过客户端连接数据库

ODAC简介

ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及函数,以在应用程序中建立连接。也可以使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的、最小的数据库应用程序。

我使用的是32位的ODAC,如下

ODAC 11.2 第 2 版和 Oracle Developer Tools for Visual Studio (11.2.0.1.2)

 下载文件
 下载ODTwithODAC112012.zip 276 MB(289670995 字节)
  ODAC 安装说明
   
  

下载包括

  Oracle Developer Tools for Visual Studio 11.2.0.1.2
  Oracle Data Provider for .NET 4 11.2.0.1.2
  Oracle Data Provider for .NET 2.0 11.2.0.1.2
  Oracle Providers for ASP.NET 4 11.2.0.1.2
  Oracle Providers for ASP.NET 2.0 11.2.0.1.2
  Oracle Database Extensions for .NET 4 11.2.0.1.2 — 仅用于升级
  Oracle Database Extensions for .NET 2.0 11.2.0.1.2 — 仅用于升级
  Oracle Provider for OLE DB 11.2.0.1.0
  Oracle Objects for OLE 11.2.0.1.0
  Oracle Services for Microsoft Transaction Server 11.2.0.1.0
  Oracle ODBC Driver 11.2.0.1.0
  Oracle SQL*Plus 11.2.0.1.0
  Oracle Instant Client 11.2.0.1.0


到oracle 官网下载一个oracle 11g对应64位的ODAC安装包,安装好之后,要让这个客户端能连接上数据库
把 客户端下的 product11.2.0client_1NetworkAdminSample下的两个文件 sqlnet.ora 和 tnsnames.ora,复制到它的上一层文件夹下,如图,

visual studio 2017使用NHibernate4.0连接oracle11g数据库第19张

<一>

visual studio 2017使用NHibernate4.0连接oracle11g数据库第20张

用记事本打开Admin下的 tnsnames.ora文件,修改端口为1521,修改实例名,和localhost,如图

visual studio 2017使用NHibernate4.0连接oracle11g数据库第21张

修改了完之后,重启计算机。
使用visual studio 2017 通过oracle客户端连接数据库
打开工具/连接数据库

visual studio 2017使用NHibernate4.0连接oracle11g数据库第22张

选择oracle数据库,然后确定

visual studio 2017使用NHibernate4.0连接oracle11g数据库第23张

弹出下面那个文本框,输入你的数据库连接信息之后,点击测试链接,提示成功之后,就可以了

visual studio 2017使用NHibernate4.0连接oracle11g数据库第24张

一切准备就绪之后,你需要在NHibernate的配置处理类中添加Oracle.DataAccess引用,然后一切都大功告成了!

资料:

http://www.cnblogs.com/lhking/p/3930711.html 

http://blog.csdn.net/fjfdszj/article/details/6637998 

https://github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate/Driver/OracleManagedDataClientDriver.cs



如果有任何疑问,可以联系我的qq:364131167


免责声明:文章转载自《visual studio 2017使用NHibernate4.0连接oracle11g数据库》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VueJS v-model 双向绑定CSS3动画的使用以及优化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JMeter学习(八)JDBC测试计划-连接Oracle(转载)

转载自 http://www.cnblogs.com/yangxia-test 一.测试环境准备       Oracle:10g       JDBC驱动:classes12.jar                              oracle安装目录下(oracleproduct10.2.0db_1jdbclibclasses12.jar)文...

微信公众平台的开发过程及其要点

微信公众平台的搭建,首先需要确定整体的架构模式,我们一般选用B/S的整体架构模式,手机或者pc端可以通过关注微信公众 号,进而访问和操作公众号中的内容,其中的主要搭建包括: A.使用xampp继承开发环境来搭建后台,需要用到的服务器和数据库。(apache+mysql) B.前端页面通过html+php动态网页来实现。如果再加点js+css效果就显示的更加...

136-如何访问redis数据库

//当我们使用Redis的时候,并没有注入Mapper,反而时注入了一个redisTemPlate @Autowired private RedisTemplate<Object,Object> redisTemplate; @Override public Integer queryUserCount() {...

MySQL权限

本文实例,运行于 MySQL 5.0 及以上版本。 MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。 grant select on testdb.* to common_user@'%'grant insert on test...

oracle创建索引表空间

Oracle的索引可分为5种,它们包括唯一索引、组合索引、反向键索引、位图索引和基于函数的索引。1、创建索引的标准语法CREATE INDEX 索引名 ON 表名 (列名)TABLESPACE 表空间名;例如:CREATE INDEX idx_of_imsi ON uim_auth_file(imsi) TABLESPACE users;2、创建唯一索引C...

centos7之zabbix监控mysql(mariadb)数据库

一、Zabbix3.2.6使用自带模板监控MySQL  添加zabbix_agent客户端方法:http://www.cnblogs.com/lei0213/p/8858269.html mysql服务器端配置 1、需知:   1、如果要监控mysql或者mariadb数据库的话,首先你得保证这台服务器的正常运行,所以首先需要监控这台linux服务器,如果...