设为首页 加入收藏

TOP

ORM利器:NHibernate(三)五部曲+简单对象CRUD+HQL(二)
2014-11-24 07:39:36 来源: 作者: 【 】 浏览:8
Tags:ORM 利器 NHibernate 五部 简单 对象 CRUD HQL
it(); } catch (Exception) { //出错后,事务回滚 trans.Rollback(); } } //查询用户 private void btnFind_Click(object sender, EventArgs e) { //trans = session.BeginTransaction(); //查找ID编号为2的人 //2-->ID属性——OR——>SQL的Where语句 Person p = (Person)session.Get(typeof(Person), int.Parse(this.txtID.Text)); //Console.WriteLine(p.ToString()); this.txtName.Text = p.Name; } //删除用户 private void btnDelete_Click(object sender, EventArgs e) { try { //开启事务 trans = session.BeginTransaction(); //根据提供的ID查找该对象 Person p = (Person)session.Get(typeof(Person), int.Parse(this.txtID.Text)); //对象删除 session.Delete(p); trans.Commit(); } catch (Exception) { trans.Rollback(); } } //更新用户 private void btnUp_Click(object sender, EventArgs e) { try { //开启事务 trans = session.BeginTransaction(); //根据提供的ID查找该对象 Person p = (Person)session.Get(typeof(Person), int.Parse(this.txtID.Text)); //修改对象属性 p.Name = this.txtName.Text; session.Update(p); trans.Commit(); } catch (Exception) { trans.Rollback(); } } //IQuery接口,是针对对象查询 private void btnHQL_Click(object sender, EventArgs e) { //HQL体验——HQL是针对对象的查询语言 //查询所有人的信息 //IQuery query = session.CreateQuery("from Person"); //IList persons = query.List(); //persons.p1(); //查询编号为2的人的信息 //IQuery query = session.CreateQuery("from Person where Id=3"); //query.List().p1(); //查询名字中有字母a的人 //session.CreateQuery("from Person where Name like '%a%'").List().p1(); //session.CreateQuery("from Person where t_Name like '%a%'").List().p1(); //session.CreateQuery("from Person where name like '%a%'").List().p1();//错误 //查找全部 //session.CreateQuery("select p from Person p").List().p1(); //session.CreateQuery("select * from Person ").List().p1();//错误,没有* //查找编号大于5的人的信息 //session.CreateQuery("from Person p where p.Id>5 ").List().p1(); //聚合函数的使用--统计人数 //session.CreateQuery("select count(p.Id) from Person p ").List().p2(); //传参1 //IQuery query = session.CreateQuery("from Person p where p.Id> "); //query.SetParameter(0,7); //query.List().p1(); //传参2 //IQuery query = session.CreateQuery("from Person p where p.Id>:id"); //query.SetParameter("id", 7); //query.List().p1(); //插入数据——Insert/Update/Delete不建议在HQL里面操作 //IQuery query = session.CreateQuery("insert into t_Person(t_Name) values( )"); //query.SetParameter(0,"kkk"); //query.ExecuteUpdate(); //查询指定范围的数据——查询第3-7条记录 IQuery query = session.CreateQuery("from Person"); query.List().Skip(3).Take(5).ToList(); ; //用ICriteria来实现该功能可能更方便 } //对IList类型数据的输出,建议用C#3.0的拓展方法来实现 public static class ExtraClass { public static void p1(this IList p) { //获取可枚举的接口对象 IEnumerator ie = p.GetEnumerator(); Console.WriteLine("\n-----------------------\n"); //遍历 while (ie.MoveNext()) { Console.WriteLine(ie.Current.ToString()); } Console.WriteLine("\n-----------------------\n"); } public static void p2(this IList p) { IEnumerator ie = p.GetEnumerator(); Console.WriteLine("\n-----------------------\n"); while (ie.MoveNext()) { Console.WriteLine(ie.Current.ToString()); } Console.WriteLine("\n-----------------------\n"); } } } }

总结:对于NHibernate的操作,本文通过五部曲进行细致的讲解:1

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何成为一名出色的Oracle数据库.. 下一篇极简AWR报告收集指导

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·About - Redis (2025-12-26 08:20:56)
·Redis: A Comprehens (2025-12-26 08:20:53)
·Redis - The Real-ti (2025-12-26 08:20:50)
·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)