用Nhibernate怎么实现数据的添加、删除、修改简单程序

原创 2004年10月13日 15:12:00

Nhibernate怎么实现数据的添加、删除、修改简单程序<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

一、创建数据库

数据库名:Nhibernate
u
se NHibernate
go
CREATE TABLE users ( 
  LogonID nvarchar(20) NOT NULL default '0',
  Name nvarchar(40) default NULL,
  Password nvarchar(20) default NULL,
  EmailAddress nvarchar(40) default NULL,
  PRIMARY KEY  (LogonID)
)
go

数据表:users

 

二、总体介绍

项目名:WebNhibernate

界面:WebForm.aspx

具体表现文件:WebForm.aspx.cs

实体类文件:EntityClass.cs

映射文件:Userhbm.xml

配置文件:Web.config

 

三、创建Web界面

类型

对象名

Text属性值

Label

Label1

ID:

Label

Label2

姓名:

Label

Label3

密码:

Label

Label4

Email

Label

Labmessage

 

TextBox

TxtId

 

TextBox

TxtName

 

TextBox

TxtPassword

 

TextBox

TxtEmail

 

Button

ButSave

添加

Button

ButDel

删除

Button

ButUpdata

修改

 

四、创建映射文件(xml文件)和实体类

实体类

using System;

namespace WebNhibernate

{

     public class EntityClass

     {

          private string id;

          private string userName;

          private string password;

          private string emailAddress;

         public EntityClass()

         {}

         public string Id

         {

              get { return id; }

              set { id = value; }

         }

         public string UserName

         {

              get { return userName; }

              set { userName = value; }

         }

         public string Password

         {

              get { return password; }

              set { password = value; }

         }

         public string EmailAddress

         {

              get { return emailAddress; }

              set { emailAddress = value; }

         }

     }

}

映射文件:

<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">

     <class name="WebNhibernate.EntityClass, WebNhibernate" table="users">

         <id name="Id" column="LogonId" type="String" length="20">

              <generator class="assigned" />

         </id>

          <property name="UserName" column= "Name" type="string" length="40"/>

          <property name="Password" type="string" length="20"/>

          <property name="EmailAddress" type="String" length="40"/>

     </class>

</hibernate-mapping>

注意点:

1<class name="WebNhibernate.EntityClass, WebNhibernate" table="users">

       WebNhibernate.EntityClass代表:实体类名

    WebNhibernate代表:该项目的装配集名称

      Users代表:数据表名

2.当属性列表<property name=”” column=””/>中既有name和column说明实体层的属性与数据表的字段名不同名

3.指定一个id, 在数据表中就是主键, 这个非常重要,nhibernate就是通过id来判断对象的唯一性的.

 

五、在配置文件中添加配置内容

1.首先在配置文件的<configuration>代码下面添加如下代码

       <configSections>

             <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />

     </configSections> 

     这一段代码是必须要的

2.在配置文件的</system.web>代码下面添加如下代码

<nhibernate>

         <!连接数据提供者 -->

         <add

              key="hibernate.connection.provider"         

              value="NHibernate.Connection.DriverConnectionProvider"

         />

         <!连接数据方言最常用的是MsSql2000Dialect -->

         <add

              key="hibernate.dialect"                     

              value="NHibernate.Dialect.MsSql2000Dialect"

         />

         <!连接数据驱动类-->

         <add

              key="hibernate.connection.driver_class"         

              value="NHibernate.Driver.SqlClientDriver"

         />

         <!连接数据库-->

         <add

              key="hibernate.connection.connection_string"

              value="Server=yanfa1;initial catalog=nhibernate;User id=sa;password=8626798;"

         />

</nhibernate>

 

六、实现代码

首先在文件头添加代码
using NHibernate;
using NHibernate.Cfg;
1.添加数据:

双击“添加“按钮

        private void ButSave_Click(object sender, System.EventArgs e)

         {

              mCfg=new Configuration();//创建配置类

              mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("Userhbm.xml"));//指明映射文件Userhbm.xml

              EntityClass vEntity=new EntityClass();

              vEntity.Id=TxtId.Text;

              vEntity.UserName=TxtName.Text;

              vEntity.Password=TxtPassword.Text;

              vEntity.EmailAddress=TxtEmail.Text;

              ISession vSession= mCfg.BuildSessionFactory().OpenSession();//创建会话工厂, 一般来说应该使用一个单例对象来封装会话工厂.

              ITransaction vTransaction = vSession.BeginTransaction();//创建事物处理

              try

              {

                   vSession.Save(vEntity);//向数据库添加数据

                   vTransaction.Commit();

                   Labmessage.Text="OK";

              }

              catch(Exception ex)

              {

                   vTransaction.Rollback();

                   Labmessage.Text="Error"+ex.ToString();

              }

              finally

              {

                   vSession.Close();

              }

         }

 

2.删除数据:

双击“删除“按钮
        private void ButDel_Click(object sender, System.EventArgs e)

         {

              mCfg=new Configuration();

              mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("Userhbm.xml"));

              ISession vSession= mCfg.BuildSessionFactory().OpenSession();

              ITransaction vTransaction = vSession.BeginTransaction();

              try

              {

                   EntityClass vEntity=(EntityClass) vSession.Load(typeof(EntityClass),TxtId.Text);//查找数据表中所要记录

                   vSession.Delete(vEntity);//向数据库删除数据

                   vTransaction.Commit();

                   Labmessage.Text="OK";

              }

              catch(Exception ex)

              {

                   vTransaction.Rollback();

                   Labmessage.Text="Error";

              }

              finally

              {

                   vSession.Close();

              }

         }

 

3.修改代码:

双击“修改“按钮
        private void ButUpdata_Click(object sender, System.EventArgs e)

         {

              mCfg=new Configuration();

              mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("Userhbm.xml"));

              ISession vSession= mCfg.BuildSessionFactory().OpenSession();

              ITransaction vTransaction = vSession.BeginTransaction();

              try

              {

                   EntityClass vEntity=(EntityClass) vSession.Load(typeof(EntityClass),TxtId.Text);

                   vEntity.UserName=TxtName.Text;

                   vEntity.Password=TxtPassword.Text;

                   vEntity.EmailAddress=TxtEmail.Text;

                   vSession.Update(vEntity); //向数据库修改数据

                   vTransaction.Commit();

                   Labmessage.Text="OK";

              }

              catch(Exception ex)

              {

                   vTransaction.Rollback();

                   Labmessage.Text="Error";

              }

              finally

              {

                   vSession.Close();

              }

         }


因本人也是刚接触Nhibernate不久,还有好多技术难点不怎么明白,还需多加努力,愿与大家一起探讨。

用Nhibernate怎么实现数据的添加、删除、修改简单程序

一、创建数据库数据库名:Nhibernateuse NHibernategoCREATE TABLE users (   LogonID nvarchar(20) NOT NULL default 0...
  • a5174
  • a5174
  • 2006年09月19日 17:13
  • 517

用Nhibernate实现数据的添加、删除、修改

用Nhibernate怎么实现数据的添加、删除、修改简单程序 一、创建数据库数据库名:Nhibernateuse NHibernategoCREATE TABLE users (   LogonID ...
  • kagar
  • kagar
  • 2006年09月07日 09:36
  • 867

NHibernate中Criteria查询表达式(各种条件查询方法) 添加,修改,删除

Criteria查询表达式:   正如我们所见,Expression对查询语句的表达式进行了封装和限制,下表列出了Expression所有的方法,以及每个方法所对应的查询表达式及其限制。   ...
  • lpy1016lc
  • lpy1016lc
  • 2014年02月20日 09:54
  • 2343

用Java实现数据的显示,增加,删除,修改

先声明一点,是一个刚学Javase的新手,有许多不足,希望大家见谅和建议。 代码1.ShopStockManage.java import java.util.ArrayL...
  • CHSXS
  • CHSXS
  • 2017年05月02日 22:16
  • 881

存储过程用例--新增、修改、删除数据

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go /********************************************...
  • pukuimin1226
  • pukuimin1226
  • 2012年07月18日 16:45
  • 3767

Ajax实现添加、修改和删除提示

//添加验证   function addCheck(){        if(document.getElementById("txtValue").value=="0"){alert("请输入...
  • maonongwu
  • maonongwu
  • 2012年05月28日 17:18
  • 1792

asp.net 中利用GridView实现增加,修改,删除

1、创建数据库表SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[Table1...
  • emailqjc
  • emailqjc
  • 2010年10月31日 12:17
  • 3172

ASP.NET中使用Nhibernate

基于上一篇,做了一个网页版的demo,方便以后学习。计划是找一个现有的项目按照自己搭的环境改写一下。 使用ASP.NET Razor 创建新的solution,导入相关引用以及package...
  • awawfwfw
  • awawfwfw
  • 2016年02月28日 14:50
  • 393

JavaEE_增删查改的思路

增 向数据库中写入一条数据。 删 通过唯一的标识将数据从数据库中进行删除。 查 按照指定的条件将数据查询出来。 改 先进行...
  • u010003835
  • u010003835
  • 2015年12月09日 20:27
  • 1353

[NHibernate]一对多关系(级联删除,级联添加)

[NHibernate]一对多关系(级联删除,级联添加)在前面的文章中,我们只使用了一个Customer类进行举例,而在客户、订单、产品中它们的关系,咱们并没有涉及,比如一个客户可以有一个或者多个订单...
  • SUNZHIJUN100
  • SUNZHIJUN100
  • 2015年03月27日 15:23
  • 4800
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Nhibernate怎么实现数据的添加、删除、修改简单程序
举报原因:
原因补充:

(最多只允许输入30个字)