using System;
using System.Data;
using System.Web;
using NHibernate;
using System.Collections;
public class DBobject
{
NHibernate.Cfg.Configuration config = null;
ISessionFactory factory = null;
ISession session = null;
ITransaction trans = null;
public DBobject()
{
config = new NHibernate.Cfg.Configuration().Configure();
////通过配置对象来产生一个SessionFactory对象,这是一个Session工厂,
////那么Session是用来干什么的呢?一个Session就是由NHibernate封装
////的工作单元,我们可以近似地认为它起到ADO.Net中Connection的作用。
factory = config.BuildSessionFactory();
session = factory.OpenSession();
////这里,开启一个由NHibernate封装的事务,当然,在这里最终代表
////的还是一个真实的数据库事务,但是我们已经不需要再区分到底是
trans = session.BeginTransaction();
}
public bool Save(object obj)
{
try
{
session.Save(obj);
trans.Commit();
return true;
}
catch (Exception ex)
{
trans.Rollback();
return false;
}
}
public bool Update(object obj,int id)
{
try
{
session.Update(obj,id);
trans.Commit();
return true;
}
catch (Exception ex)
{
trans.Rollback();
return false;
}
}
public bool Delete(object obj, int id)
{
try
{
session.Delete(session.Get(obj.ToString(),id));
trans.Commit();
return true;
}
catch (Exception ex)
{
trans.Rollback();
return false;
}
}
public IList getList(string sql)
{
return session.CreateQuery(sql).List();
}
}
本文介绍了一个使用NHibernate进行数据库操作的示例类DBobject。该类包括连接数据库、保存、更新、删除数据及执行SQL查询的功能。通过示例展示了如何在.NET环境中利用NHibernate框架进行数据库交互。
768

被折叠的 条评论
为什么被折叠?



