第一步:安装MySQL数据库,安装数据库管理软件MySQL-Front
创建数据库arpg,表testuser,
在VS中创建数据库工程,鼠标右键解决方案,NuGet管理包
搜索FluentNibernate安装,MySQL安装
创建数据库模型类
- //数据库的模型类
- class TestUser
- {
- public virtual int Id { get; set; } //表中的Id
- public virtual string Username { get; set; }//表中的username字段
- public virtual string Password { get; set; }//表中的password字段
- public virtual int Aga { get; set; }//表中的age字段
- }
创建数据库的映射类
- class TestUserMap:ClassMap<TestUser>
- {
- //映射数据库表中的数据
- public TestUserMap()
- {
- Id(x => x.Id);//设置Id属性为主键
- Map(x => x.Username).Column("username");//普通属性映射
- Map(x => x.Password).Column("password");
- Map(x => x.Aga).Column("age");
- Table("testuser");//表名
- }
- }
创建FluentNibernate的帮助类
- public class NHibernateHelper
- {
- private static ISessionFactory session = null;
- //初始化session
- private static void InitSession()
- {
- session = Fluently.Configure()
- .Database(MySQLConfiguration.Standard.ConnectionString(db => db.Server("localhost").Database("arpg").Username("root").Password("root")))
- .Mappings(x => x.FluentMappings.AddFromAssemblyOf<NHibernateHelper>()).BuildSessionFactory();
- }
- //get属性
- private static ISessionFactory SessionFactory
- {
- get{
- if (session == null)
- InitSession();
- return session;
- }
- }
- //public 的get方法
- public static ISession OpenSession()
- {
- return SessionFactory.OpenSession();
- }
- }
创建数据库的测试类
- //测试查询用户名
- class TestUserManager
- {
- //查询全部用户名
- public IList<TestUser> GetAllUser()
- {
- //获取NHibernateHelper的 sesson
- using (var session=NHibernateHelper.OpenSession())
- {
- using (var transation = session.BeginTransaction())
- {
- //查询全部用户
- var userList = session.QueryOver<TestUser>();
- transation.Commit();
- return userList.List();
- }
- }
- }
- //根据条件查询
- public IList<TestUser> GetUserByName(string name)
- {
- using (var session = NHibernateHelper.OpenSession())
- {
- using (var transation = session.BeginTransaction())
- {
- // 根据名字查询
- var userList = session.QueryOver<TestUser>().Where(user=>user.Username==name);
- transation.Commit();
- return userList.List();
- }
- }
- }
- //增加 保存数据
- public void SaveUser(TestUser user)
- {
- using (var session = NHibernateHelper.OpenSession())
- {
- using (var transation = session.BeginTransaction())
- {
- //增加数据
- session.Save(user);
- transation.Commit();
- }
- }
- }
- //删除数据
- public void DelById(int id)
- {
- using (var session = NHibernateHelper.OpenSession())
- {
- using (var transation = session.BeginTransaction())
- {
- TestUser tu = new TestUser();
- tu.Id = id;
- //删除数据
- session.Delete(tu);
- transation.Commit();
- }
- }
- }
- //更新
- public void UpdataByUser(TestUser uptu)
- {
- using (var session = NHibernateHelper.OpenSession())
- {
- using (var transation = session.BeginTransaction())
- {
- //更新数据
- session.Update(uptu);
- transation.Commit();
- }
- }
- }
- //测试方法
- static void Main(string[] args)
- {
- TestUserManager userManager = new TestUserManager();
- //查询所有
- IList<TestUser> testuserList =userManager.GetAllUser();
- foreach (TestUser tu in testuserList)
- {
- Console.WriteLine(tu.Username);
- }
- Console.WriteLine("------------------根据名字查询--------------------------");
- //根据条件查询
- IList<TestUser> testuserList2 = userManager.GetUserByName("aa");
- foreach (TestUser tu in testuserList2)
- {
- Console.WriteLine(tu.Username);
- }
- Console.WriteLine("-----------------增加用户,保存--------------------------");
- TestUser tesu = new TestUser();
- tesu.Username = "张三";
- tesu.Password = "123456";
- tesu.Aga = 23;
- // userManager.SaveUser(tesu);
- Console.WriteLine("-----------------根据id删除--------------------------");
- //userManager.DelById(5);
- Console.WriteLine("-----------------更新--------------------------");
- TestUser ts3 = testuserList[2];
- ts3.Password ="123456";
- userManager.UpdataByUser(ts3);
- Console.ReadKey();
- }
- }
运行结果