使用Spring.Net进行WebService开发(四)Spring.Net整合NHibernate

在之前我们的Dao层只是一个空壳,仅仅返回Mock对象而已,现在真正的数据库要出马了,我们看看Spring.Net怎么和NHibernate进行整合。

首先创建hibernate.cfg.xml文件(名字随意),这个文件是进行整合的关键,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:db="http://www.springframework.net/database">

  <object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
    <property name="ConfigSections" value="databaseSettings"/>
  </object>

  <!-- 数据库相关配置 -->
  <db:provider id="DbProvider"
               provider="MySql-6.2.2"
               connectionString="Server=127.0.0.1;Database=memobox;Uid=root;Pwd=123456;"/>

  <!--SessionFactory对象,其中包括一些比较重要的属性 -->
  <object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32">
    <property name="DbProvider" ref="DbProvider"/>
    <property name="MappingAssemblies">
      <list>
        <value>MemoBoxServer</value>
      </list>
    </property>
    <property name="HibernateProperties">
      <dictionary>

        <entry key="hibernate.connection.provider"
              value="NHibernate.Connection.DriverConnectionProvider"/>
        <entry key="dialect"
              value="NHibernate.Dialect.MySQL5Dialect"/>
        <entry key="hibernate.connection.driver_class"
              value="NHibernate.Driver.MySqlDataDriver"/>

      </dictionary>
    </property>
    <property name="ExposeTransactionAwareSessionFactory" value="true" />
  </object>

  <!--将id为NHibernateSessionFactory的对象注入到HibernateTemplate中-->
  <object id="HibernateTemplate" type="Spring.Data.NHibernate.HibernateTemplate">
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
    <property name="TemplateFlushMode" value="Auto" />
    <property name="CacheQueries" value="true" />
  </object>

</objects>
下面我们对该文件的属性逐个说明:

DbProvider帮助我们连接数据库,他们由Spring.Net的DbProviderFactory创建,所有的DbProvider都实现了IDbProvider接口,向我们提供连接数据库、执行sql语句的方法。

关于目前版本的Spring.Net提供的DbProvider列表详见19. DbProvider

我们采用MySQL数据库,所以这里的provider选用MySql-6.2.2,你需要安装Mysql Connector 6.2.2及以上版本,数据库连接字符串按照要求填写


NHibernateSessionFactory是SessionFactory对象,MappingAssemblies标识了HNibernate在哪些程序集中寻找*.hbm.xml文件,注意这里是程序集名称,而不是命名空间名称


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值