我们成功的运行了自己的第一个Spring.NET程序和第一个NHibernate程序。下面我们将上面的程序整合到一个项目中来。让Spring.NET的容器来管理NHibernate。建立新的项目(SpringNHibernateSample)
项目名称为:SpringNHibernateSample 名字空间:OKEC.Sample添加NHibernate程序
将NHibernateSample项目的User.cs、User.hbm.xml加入的新的项目中。
并修改User.hbm.xml,将其中的

<class name=" OKEC.Sample.NHibernate.NHibernateTest.User,NHibernateSample"

table="my_users">

改为

<class name=" OKEC.Sample.NHibernate.NHibernateTest.User,SpringNHibernateSample"

table="my_users">

添加Spring.NET的程序
n        首先,需要将SpringSample项目中的HelloTest.cs、Spring_bean.xml、SpringContext.cs加入到新的项目,并修改其中有用到程序集相关的地方。
如将Spring_bean.xml中的:

<object id="Hello" type="OKEC.Sample.Spring.HelloTest,SpringSample" />
改为

<object id="Hello" type="OKEC.Sample.Spring.HelloTest,SpringNHibernateSample" />n        然后,添加一个为NHibernate提供DbProvider的实现类,此类实现了Spring.Data.Common.IDbProvider接口,为NHibernate提供DbProvider所需的链接字串(ConnectionString)。
using System;
using Spring.Data.Common;
namespace OKEC.Sample.Spring
{
    /// <summary>
    /// SQLPriv 的摘要说明。
    /// </summary>
    public class SQLProvider:IDbProvider
     {
        public SQLProvider()
         {
            //
            // TODO: 在此处添加构造函数逻辑
            //
         }
        #region IDbProvider 成员
        public System.Data.IDbConnection CreateConnection()
         {
            // TODO:   添加 SQLPriv.CreateConnection 实现
            return null;
         }
        public string CreateParameterName(string name)
         {
            // TODO:   添加 SQLPriv.CreateParameterName 实现
            return null;
         }
        public System.Data.IDbDataParameter CreateParameter()
         {
            // TODO:   添加 SQLPriv.CreateParameter 实现
            return null;
         }
        private string _connectionString="";
        public string ConnectionString
         {
            get
             {
                // TODO:   添加 SQLPriv.ConnectionString getter 实现
                return _connectionString;
             }
            set
             {
                 _connectionString = value;
                // TODO:   添加 SQLPriv.ConnectionString setter 实现
             }
         }
        public string ExtractError(Exception e)
         {
            // TODO:   添加 SQLPriv.ExtractError 实现
            return null;
         }
        public System.Data.IDbDataAdapter CreateDataAdapter()
         {
            // TODO:   添加 SQLPriv.CreateDataAdapter 实现
            return null;
         }
        public bool IsDataAccessException(Exception e)
         {
            // TODO:   添加 SQLPriv.IsDataAccessException 实现
            return false;
         }
        public System.Data.IDbCommand CreateCommand()
         {
            // TODO:   添加 SQLPriv.CreateCommand 实现
            return null;
         }
        public object CreateCommandBuilder()
         {
            // TODO:   添加 SQLPriv.CreateCommandBuilder 实现
            return null;
         }
        public IDbMetadata DbMetadata
         {
            get
             {
                // TODO:   添加 SQLPriv.DbMetadata getter 实现
                return null;
             }
         }
        #endregion
     }
}
n        最后,添加一个Spring.Data.NHibernate对NHibernate的封装对像,此对像实现对User对像数据操作,继承自
Spring.Data.NHibernate.Support.HibernateDaoSupport。
using System;
using System.Collections;
using Spring.Data.NHibernate.Support;
namespace OKEC.Sample.NHibernate.NHibernateTest
{
    /// <summary>
    /// UserDao 的摘要说明。
    /// </summary>
    public class UserDao : HibernateDaoSupport
     {
        public UserDao()
         {    //
            // TODO: 在此处添加构造函数逻辑
            //
         }
        public bool SaveObject(User user)
         {
             HibernateTemplate.Save(user);
            return true;
         }
        public bool DeleteObject(User user)
         {
             HibernateTemplate.Delete(user);
            return true;
         }
        public bool UpdateObject(User user)
         {
             HibernateTemplate.Update(user);
            return true;
         }
        public IList GetAllObjectsList()
         {
            return HibernateTemplate.LoadAll(typeof(User));
         }
        public User Load(Object ID)
         {
            return (User)HibernateTemplate.Load(typeof(User),ID);
         }
     }
}

转 Spring.NET 与 NHibernate 的整合相关推荐

  1. 六步实现Spring.NET 与 NHibernate 的整合

    最近刚完成一个项目,其中对数据库的架构用到的是Spring.NET 与 NHibernate相结合的产物.对于这两项技术,我自己也不是太熟悉,不过好在网上有很多关于这方面的介绍文档,在这里就不多说了. ...

  2. spring boot 1.5.4 整合 mybatis(十二)

    上一篇:spring boot 1.5.4 整合log4j2(十一) Spring Boot集成Mybatis 更多更详细的配置参考文件:application.properties和<Spri ...

  3. Spring Boot Cache使用与整合

    参考: 史上最全的Spring Boot Cache使用与整合 Spring Cache扩展:注解失效时间+主动刷新缓存 项目地址 使用本地Caffeine缓存 引入依赖包 <dependenc ...

  4. Spring+SpringMVC+MyBatis+Maven框架整合

    本文记录了Spring+SpringMVC+MyBatis+Maven框架整合的记录,主要记录以下几点  一.Maven需要引入的jar包  二.Spring与SpringMVC的配置分离  三.Sp ...

  5. spring boot 1.5.4 整合redis、拦截器、过滤器、监听器、静态资源配置(十六)

    上一篇:spring boot 1.5.4 整合webService(十五) 1      Spring Boot整合redis和缓存 Spring Boot中除了对常用的关系型数据库提供了优秀的自动 ...

  6. mybatis 配置_配置Mybatis在Spring Boot工程中的整合

    配置Mybatis在Spring Boot工程中的整合包,设置mybatis的实体类别名,输出执行sql语句配置项. 分析: 添加启动器依赖: 配置Mybatis:实体类别名包,日志,映射文件等: 配 ...

  7. 【Spring 工厂】工厂设计模式、第一个Spring程序细节分析、整合日志框架

    Spring 引言 什么是 Spring? 工厂设计模式 简单工厂的设计 通用工厂的设计 通用工厂的使用方式 第一个 Spring 程序 环境搭建 Spring 的核心API 程序开发 细节分析 Sp ...

  8. Spring Cloud (Eureka,Feign,Hystrix整合)

    Spring Cloud(Eureka,Feign,Hystrix整合) Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代 ...

  9. Spring Boot、Spring Cloud 自定义配置文件(如何整合配置中心)

    文章目录 Spring Boot配置 简单测试使用 Spring Cloud自定义配置文件获取 1. 引入依赖 2. 自定义配置 2.1 自定义PropertySource,这里我们直接使用Sprin ...

最新文章

  1. 【工具使用系列】关于 MATLAB 液压元件,你需要知道的事
  2. W3C宣布成立Web性能工作组
  3. 数据恢复,恢复丢失的数据,突破1G限制!
  4. AtCoder 2305 [AGC010D] Decrementing(博弈)
  5. vector与array之间转换,向量与数据之间转换
  6. run (牛客多校第二场)计数DP
  7. 不使用库函数将字符串转换为数字
  8. 网络安全隐患,中国应发展自已的核心技术
  9. JavaWeb知识框架
  10. 网课题库API接口 对接教程
  11. Teamviewer QuickSupport - 在电脑上远程连接控制手机/平板的软件神器 (Android/iOS)
  12. 小学认识计算机评课,小学信息技术评课.doc
  13. 苏宁小店前7个月亏近3亿 张近东儿子将持有65%股权
  14. panel组件学习(1)常见属性学习
  15. 涂鸦蓝牙SDK开发系列教程——5.应用开发
  16. 容联云发送手机短信验证码
  17. java跟全链路ui哪个好,什么是全链路UI设计师
  18. 尹孝孫 楸溪 門前刺紙欲生毛
  19. 三国杀代码12武将C++
  20. 绕任一向量旋转矩阵计算思考与实现

热门文章

  1. QT的QSound类的使用
  2. 编程php分析器,如何编程访问分析器数据
  3. pandas.DataFrame.iloc的使用
  4. spring boot 使用外部配置文件
  5. Mysql 8 密码策略之组件方式及ERROR 1819
  6. 表的插入、更新、删除、合并操作_5_通过其它表插入
  7. 太吾绘卷存档修改2020_太吾绘卷/神级初始存档
  8. c++标准模板库STL【快速查找】【最全】【常用】【语法】
  9. 《C#编程风格》还记得多少
  10. R-FCN+ResNet-50 训练模型