ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(三)——NHibernate配置...

1、在CMS.App新增XML配置文件web_nhibernate.xml并设置为“嵌入的资源”

2、在Web.config中<spring> -> <resource>加入配置:

<resource uri="assembly://CMS.App/CMS.App/web_nhibernate.xml"/>

3、web_nhibernate.xml中的代码:

ContractedBlock.gifExpandedBlockStart.gifCode
Code
<?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>

  
<!--SessionFactory对象,其中包括一些比较重要的属性 -->
  
<object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate20">
    
<property name="DbProvider" ref="DbProvider"/>
    
<property name="MappingAssemblies">
      
<list>
         
<!--NHibernate模型和相关配置文件所在的程序集-->
        
<value>CMS.Model</value>
      
</list>
    
</property>
    
<property name="HibernateProperties">
      
<dictionary>
        
<entry key="hibernate.connection.provider"
               value
="NHibernate.Connection.DriverConnectionProvider"/>
        
<entry key="dialect"
               value
="NHibernate.Dialect.MsSql2000Dialect"/>
        
<entry key="hibernate.connection.driver_class"
               value
="NHibernate.Driver.SqlClientDriver"/>

      
</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>

在CMS.MvcWeb中加入对CMS.Model类库的引用(加入对模型层的引用)

NHibernate配置完成,下面是测试:
在CMS.Model新增以下文件:


User.cs:
ContractedBlock.gifExpandedBlockStart.gifCode
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CMS.Model
{
    
public class User
    {
        
public int UserID
        { 
getset; }

        
public string UserName
        { 
getset; }

        
public string UserPwd
        { 
getset; }
    }
}

User.hbm.xml:(记得要设置成“嵌入的资源”)
ContractedBlock.gifExpandedBlockStart.gifCode
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

  
<class name="CMS.Model.User, CMS.Model" table="t_User"  lazy="false">

    
<id name="UserID" type="Int32" unsaved-value="0">
      
<column name="tm_uid" sql-type="int" not-null="true" unique="true"/>
      
<generator class="increment" />
    
</id>

    
<property name="UserName"           column="tm_userName"        type="System.String"    length="20"     />
    
<property name="UserPwd"            column="tm_userPwd"         type="System.String"    length="32"     />

  
</class>
</hibernate-mapping>

在CMS.IDAL类库中新增:
ContractedBlock.gifExpandedBlockStart.gifCode
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CMS.IDAL
{
    
public interface IUserDao
    {
        
void Save(CMS.Model.User user);
    }
}

在CMS.DAL类库中新增对上面接口的实现:
先引用:
CMS.Model
CMS.IDAL
spring.core
spring.data
spring.data.nhibernate20
ContractedBlock.gifExpandedBlockStart.gifCode
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CMS.IDAL;
using Spring.Data.NHibernate.Support;

namespace CMS.DAL
{
    
public class UserDao : HibernateDaoSupport, IUserDao
    {
        
#region IUserDao 成员

        
public void Save(CMS.Model.User user)
        {
            
this.HibernateTemplate.Save(user);
        }

        
#endregion
    }
}


web_business.xml:

ContractedBlock.gifExpandedBlockStart.gifCode
<?xml version="1.0" encoding="utf-8" ?>
<!-- 业务层的对像定义 DAO & Manager -->
<objects xmlns='http://www.springframework.net'>
  
<object id="TestBLL" type="CMS.BLL.TestBLL, CMS.BLL">
  
</object>
  
  
<object id="UserDao" type="CMS.DAL.UserDao, CMS.DAL">
    
<property name="HibernateTemplate" ref="HibernateTemplate"/>
  
</object>
</objects>

web_web.xml:
ContractedBlock.gifExpandedBlockStart.gifCode
<?xml version="1.0" encoding="utf-8" ?>
<!-- WEB层的页面对像定义 -->
<objects xmlns='http://www.springframework.net'>
  
<object id="Default" type="Default.aspx">
    
<property name="ITestBLL" ref="TestBLL" />
    
<property name="IUserDao" ref="UserDao" />
  
</object>
</objects>

在CMS.Web中添加好DAL,IDAL,MODEL的引用

Default.aspx.cs
ContractedBlock.gifExpandedBlockStart.gifCode
using System.Web;
using System.Web.Mvc;
using System.Web.UI;
using CMS.IBLL;
using CMS.IDAL;

namespace CMS.MvcWeb
{
    
public partial class _Default : Page
    {
        
public ITestBLL ITestBLL
        { 
getset; }

        
public IUserDao IUserDao
        { 
getset; }

        
public void Page_Load(object sender, System.EventArgs e)
        {
            ITestBLL.Write();

            CMS.Model.User user 
= new CMS.Model.User();
            user.UserName 
= "admin";
            user.UserPwd 
= "admin888";

            IUserDao.Save(user);
            Response.Write(
"添加成功!");
            
// Change the current path so that the Routing handler can correctly interpret
            
// the request, then restore the original path so that the OutputCache module
            
// can correctly process the response (if caching is enabled).

            
//string originalPath = Request.Path;
            
//HttpContext.Current.RewritePath(Request.ApplicationPath, false);
            
//IHttpHandler httpHandler = new MvcHttpHandler();
            
//httpHandler.ProcessRequest(HttpContext.Current);
            
//HttpContext.Current.RewritePath(originalPath, false);
        }
    }
}

运行效果:
 

源码下载

转载于:https://www.cnblogs.com/cjnmy36723/archive/2009/08/08/1541958.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html网页加密最终版,【原】记一次加密网页html的研究

某次web编程,思考着辛辛苦苦编写的web别人 右键查看源码不就一目了然了&#xff1f;当然有些人会把script写入外部js引入&#xff0c;但也只是增加了查看源码的步骤。我就想把整个页面html都加密下&#xff0c;只是右键查看时&#xff0c;看不出代码。那么是否可行&#xff1f;…

修改hosts 流畅使用coursera

以管理员权限打开 C盘 -> Windows-> System32 -> drives -> etc -> hosts文件 在hosts文件最后写入  52.84.246.72 d3c33hcgiwev3.cloudfront.net 转载于:https://www.cnblogs.com/yezhaodan/p/7479251.html

html转excel有问题,html转excel

在工作中时常会遇到转换的问题&#xff0c;比如在浏览网站的时候看到一个不错的表格&#xff0c;但这个表格是网页上面的&#xff0c;该网站又不提供下载&#xff0c;这个时候该如何将这个表格下载下来&#xff0c;并且完整的将其转换到Excel中呢?下面8844就为你介绍如何将Htm…

[跟我学UML] UML中的对象图

缩略语UIS UML Infrastructure Specification UML基础结构规范UML Unifed Modeling Language 统一建模语言USS UML Superstructure Specification UML上层结构规范参考资料《UML Infrastructure Specification, v2.2》《UML Superstructure Specifica…

计算机无法安装hp网络打印机,安装HP网络打印机步骤

打印机在连接上网线以后会通过路由器的DHCP服务自动设置一个IP&#xff0c;但是此IP不一定与你的计算机的IP处在同一个IP段(同段IP为192.168.0.***&#xff0c;即前三位相同(不一定为192.168.0)&#xff0c;只有最后一位不同)&#xff0c;IP不在同一段是无法连接的。此时应手动…

VTP (vlan trunking protocol)

VTP&#xff08;vlan trunking protocol&#xff09;vlan中继协议&#xff0c;是一个二层协议&#xff0c;主要用于在一个vtp域内同步vlan信息&#xff08;vlan的添加、删除、重命名&#xff09;。所谓vtp域&#xff0c;就是配置了相同vtp域名的所有连接在一起的交换机组成的网…

隐藏GridControl的“Drag a column header here to group by that column”

打开设计器&#xff0c;找到OptionsView&#xff0c;往下拉设置showGroupPanel为false 转载于:https://www.cnblogs.com/Cruise-Yang/p/7490052.html

实例分享--告诉你如何使用语音和自然语言控制智能家居

ZigBee作为一种短距离、低功耗的无线通信局域网协议&#xff0c;其优点是超低功耗、安全性高和自组网&#xff0c;并且可容纳多个设备&#xff0c;因此在智能家居控制中占有很大的优势。 但是&#xff0c;仅仅使用ZigBee技术来控制家居设备显得比较单薄&#xff0c;或者不够“智…

html中input两个圆括号,如何使用Jquery将光标聚焦在两个括号(括号)之间?

我有一个与按钮一起工作的计算器来分配值。主要想法是生成公式。这些值被无缝添加到“输入”中。所有支架输入您相应的按钮时&#xff0c;我需要发生的是继续在括号如何使用Jquery将光标聚焦在两个括号(括号)之间&#xff1f;输入值的Jquery$(document).ready(function() {$(&q…

Spring框架中的Bean是线程安全的吗

答: 不是安全的。 Spring中的Bean默认是单例模式的&#xff0c;框架并没有对bean进行多线程的封装处理。 注&#xff1a;单例bean是指IOC容器中就只有这么一个bean&#xff0c;是全局共享的&#xff0c;有多少个线程来访问用的都是这个bean。 如果Bean是有状态的&#xff0c;…

python--14 递归

递归是神马 >>> def recursion():  ... recursion()  ...   >>> recursion()  Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "<stdin>", line 2, in recursion   …

使用Reflector.FileDisassembler反编译DLL

转自http://www.cnblogs.com/wuliangbo Reflector for .NET 下载地址&#xff1a;http://www.aisto.com/roeder/dotnet/ Reflector.FileDisassembler.dll cs文件的工具下载地址 &#xff1a; http://www.denisbauer.com/Downloads/Reflector.FileDisassembler.zip 1.下载Refl…

NOD32最新升级ID

2009年08月20日NOD32最新升级ID —————————————————————————— 两个EAV激活码&#xff1a; M26F-0233-3WRA-7M6W-H4QL-8K7J M26F-0233-3WRA-8DET-U646-T94T 用户名 密码 版本 EAV-19640855 - rtr3afv8pa >> ess E…

IOS https抓包及10.3.3版本证书不生效问题解决

Charles安装HTTP抓包HTTPS抓包1. Charles安装 官网下载安装Charles:https://www.charlesproxy.com/download/ 2. HTTP抓包 &#xff08;1&#xff09;查看电脑IP地址 &#xff08;2&#xff09;设置手机HTTP代理iphone连上wifi&#xff0c;点击“设置->无线局域网->连接的…

C# 备忘

1.使用partial来修饰类和结构&#xff0c;运行跨多个*.cs文件来定义c#类型。类型名必须是一致的&#xff0c;并且定义在相同的.NET命名空间中。 2.C#提供了关键字sealed来防止发生继承&#xff0c;如果将类标记为sealed&#xff0c;编译器将不会允许我们从这个类型派生。有时不…