Photon_对NHibernate增删改查的封装_008
来源:互联网 发布:linux双系统引导修复 编辑:程序博客网 时间:2024/05/22 10:26
第一步:
使用单例模式封装一个Hibernate的一个工具类,增加对代码的重用。
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using NHibernate;using NHibernate.Cfg;namespace YYEdu{ class NHibernateHelper { private static ISessionFactory _sessionFactory; private static ISessionFactory SessionFactory { get { if (_sessionFactory == null) { var configuration = new Configuration(); configuration.Configure(); configuration.AddAssembly("YYEdu"); _sessionFactory = configuration.BuildSessionFactory(); } return _sessionFactory; } } public static ISession OpenSession() { return SessionFactory.OpenSession(); } }}
第二步:
定义一个用户管理类接口
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using YYEdu.Model;namespace YYEdu.Manager{ interface IUserManager { void Add(User user); void Update(User user); void Remove(User user); User GetById(int id); User GetByUsername(string username); ICollection<User> GetAllUser(); bool VerifyUser(string username,string passsword); }}
第三步:
定义一个用户管理类,并集成用户管理类接口
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using YYEdu.Model;using NHibernate;using NHibernate.Criterion;namespace YYEdu.Manager{ class UserManager : IUserManager { public void Add(User user) { //第一种方式 //ISession session = NHibernateHelper.OpenSession(); //session.Save(user); //session.Close(); //第二种方式 不用管理资源的释放 using (ISession session = NHibernateHelper.OpenSession()) { using(ITransaction transaction = session.BeginTransaction()) { session.Save(user); transaction.Commit(); } } } public ICollection<User> GetAllUser() { using (ISession session = NHibernateHelper.OpenSession()) { IList<User> users = session.CreateCriteria(typeof(User)).List<User>(); return users; } } public User GetById(int id) { using (ISession session = NHibernateHelper.OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { User user = session.Get<User>(id); transaction.Commit(); return user; } } } public User GetByUsername(string username) { using (ISession session = NHibernateHelper.OpenSession()) { ICriteria criteria = session.CreateCriteria(typeof(User)); criteria.Add(Restrictions.Eq("Username",username)); User user = criteria.UniqueResult<User>(); return user; } } public void Remove(User user) { using (ISession session = NHibernateHelper.OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { session.Delete(user); transaction.Commit(); } } } public void Update(User user) { using (ISession session = NHibernateHelper.OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { session.Update(user); transaction.Commit(); } } } //验证用户名是否存在 public bool VerifyUser(string username, string passsword) { using (ISession session = NHibernateHelper.OpenSession()) { ICriteria criteria = session.CreateCriteria(typeof(User)); criteria.Add(Restrictions.Eq("Username", username)); criteria.Add(Restrictions.Eq("Password", passsword)); User user = criteria.UniqueResult<User>(); return user == null ? false : true; } } }}
对以上方法的调用
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using NHibernate;using NHibernate.Cfg;using YYEdu.Model;using YYEdu.Manager;namespace YYEdu{ class Program { static void Main(string[] args) { //添加用户信息 //User user = new User() { Username ="张三",Password="12456"}; //IUserManager usermanager = new UserManager(); //usermanager.Add(user); //更新用户的信息 //User user = new User() {Id = 20, Username = "王五", Password = "12345" }; //UserManager usermanager = new UserManager(); //usermanager.Update (user); //根据Id号删除用户 //User user = new User() { Id=20}; //UserManager usermanager = new UserManager(); //usermanager.Remove(user); //按Id号查询用户的名字 //IUserManager userManager = new UserManager(); //User user = userManager.GetById(19); //Console.WriteLine(user.Username); //Console.WriteLine(user.Password); //按用户名查找用户 //IUserManager usermanager = new UserManager(); //User user = usermanager.GetByUsername("杨勇"); //Console.WriteLine(user.Username); //Console.WriteLine(user.Password); //查询所有的用户 IUserManager userManager = new UserManager(); ICollection<User> users = userManager.GetAllUser(); foreach (User item in users) { Console.WriteLine(item.Username +" "+ item.Password); } //验证用户名和密码是否正确 Console.WriteLine(userManager.VerifyUser("sdfs","123456")); Console.WriteLine(userManager.VerifyUser("杨勇","123456")); } }}
阅读全文
0 0
- Photon_对NHibernate增删改查的封装_008
- Photon_使用NHibernate向数据库中增删改查数据_006
- Hibernate对数据库增删查改的封装
- 封装thinkphp的增删改查
- 封装的DBUtil 简化增删改查
- JSP数据库的封装,增删改查
- sql数据增删改查的封装
- Jdbc封装的增删查改
- Jdbc封装的增删查改
- mysql增删改查的封装
- nhibernate 的简介 设计过程 以及 增删改查
- java对数据库进行增删改查的封装(封装以后只要一句话就搞定对数据库的增删改查)
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- c# 对Xml的增删改查
- 实训一的学习计划
- java线程基础
- 第三周第二课
- Spring Boot-V1.5.7关闭Banner
- linux、unix下设置oracle环境变量
- Photon_对NHibernate增删改查的封装_008
- 9.23日常总结
- hdu 6158 The Designer && 计蒜客 Finding the Radius for an Inserted Circle 笛卡尔定理应用+韦达定理
- 文件夹加密
- SpringBoot配置Https
- JAVA 环境变量 设置
- c浮点数运算
- SQL DBHelper
- Timeline--Animation