• 刚开始学习NHibernate


    本文是继NHibernate Step by Step (一) Hello,NHibernate!   的Oracle版本及做了一些调整。我看了文章后试了一下,花了近半个小时的时间才弄好最基本的配置。这篇就作为一个补充吧。

    我的环境的WindowXP VS.net2003 Oracle9i  CodeSmith 3.1.6 

    大家可以关注两方面的内容,一个是Oracle 一个是VS.Net2003。这两方面是与原作者的不同。我会把差别的地方都写下来。

    至于CodeSmith的配置请看我另一篇Blogs  开始使用CodeSmith3.1-解决了Oracle连接及汉字的问题  

    基本的软件环境如下:
    1.NHibernate www.nhibernate.org 当前版本是1.0.2
    2.Code Smith http://www.codesmithtools.com/  我用的是3.1
    3.NHibernate模板 点击这里下载


    一、创建表的脚本为:
    alter table Person
       drop primary key cascade
    /
    drop table Person cascade constraints
    /
    /*==============================================================*/
    /* Table: Person                                                */
    /*==============================================================*/
    create table Person  (
       ID                   number                           not null,
       Name                 VARCHAR2(50)
    )
    /
    alter table Person
       add constraint PK_PERSON primary key (ID)
    /

    2、打开的时候是把下载下来的nhibernate-1.0.2.0解压后打开nhibernate-1.0.2.0\src这个目录里的NHibernate-1.1.sln这个解决方案。然后再按作者说的添加Model项目等。
    3、Person.hbm.xml文件属性里是设置第一个属性:生成操作,默认是内容吧,改成嵌入的资源。(我是用中文版,因为我比较懒)
    4、很重要的要注意,在Oracle里生成的代码中,所有的表名和字段名都会变成大写的。可能是因为Oracle的系统表存的是大写的吧。所以要注意一下。
    5、修改配置文件:
    改成为:(需要修改版本及连接数据库的类型改为Oracle9i)
        <configSections>
           <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </configSections>

      <nhibernate>
        <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
        <add key="hibernate.connection.driver_class" value="NHibernate.Driver.OracleClientDriver" />
        <add key="hibernate.connection.connection_string" value="Data Source=eoffice;user id=test;password=test" />
        <add key="hibernate.connection.isolation" value="ReadCommitted"/>
        <add key="hibernate.dialect" value="NHibernate.Dialect.Oracle9Dialect" />
      </nhibernate>
    6、因为我不会用控制台程序,主要是不知道如何修改控制台程序的配置文件,我暂时没有找到,有谁会可以教我一下。所以我前台的程序是用Web程序来做测试的。因为我是用Web程序所以默认就有了using System.Collections;,不需要再引用using System.Collections.Generic;
     
    7、因为Oracle没有像SQL Server那个有一个自动增长的字段,所以需要注意一下修改PERSON.hbm.xml文件中的ID的generator 要由原来的native改成assigned
            <id name="Id" type="Int32" unsaved-value="0">
                            <column name="ID" sql-type="NUMBER" not-null="true" unique="true" index="PK_PERSON"/>
                            <generator class="assigned" />
                    </id>


           再次提醒,Oracle里生成的大小写一定要注意。我在这方面花了十几分钟才找到原因。累呀

  • 相关阅读:
    OpenGL3:幼儿园篇 第三章 几何变换
    OpenCV2:应用篇 三维重建
    Word绑定博客园
    Android大学课件SQLite3 数据库操作
    Android Studio导入jar包
    安卓Android基础四天
    学习Android过程中遇到的未解决问题(个人笔记,细节补充,随时更新)
    学习Android过程中遇到的问题及解决方法——电话监听
    学习Android过程中遇到的问题及解决方法——网络请求
    安卓Android基础第三天——数据库,ListView
  • 原文地址:https://www.cnblogs.com/liubiqu/p/485016.html
Copyright © 2020-2023  润新知