3.创建Manager类,演示对TestUser进行增删改查功能
接上一篇文章 创建NHibernateHelper帮助类,生成sessionFactory
http://www.cnblogs.com/fzxiaoyi/p/8443587.html
创建个新的类Manager,演示对TestUser进行增删改查功能
编写代码如下:
using MySQLDateBase.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace MySQLDateBase.Manager
{
/// <summary>
/// 这个类用于对TestUser进行增删改查功能
/// </summary>
class Manager
{
//获取TestUser所有用户信息
public IList<TestUser> GetAllUser()
{
using (var session = NHibernateHelper.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
var userList = session.QueryOver<TestUser>();
transaction.Commit();
return userList.List();
}
}
}
//通过用户名查询用户
public IList<TestUser> GetUserByUserName(string userName)
{
using (var session = NHibernateHelper.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
var userList = session.QueryOver<TestUser>().Where(user => user.Username == userName);
transaction.Commit();
return userList.List();
}
}
}
//增加用户
public void AddUser(TestUser user)
{
using (var session = NHibernateHelper.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
session.Save(user);
transaction.Commit();
}
}
}
//删除用户
public void DeleteUserById(int id)
{
using (var session = NHibernateHelper.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
TestUser user = new TestUser();
user.Id = id;
//注意如果指定主键不存在,就会抛出异常
session.Delete(user);
transaction.Commit();
}
}
}
//修改用户
public void ModifyUser(TestUser user)
{
using (var session = NHibernateHelper.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
session.Update(user);
transaction.Commit();
}
}
} //测试用的入口,注释掉Program.cs中的Main函数
static void Main(string[] arrgs)
{
Manager testUserManager = new Manager(); //获取所有用户信息
Console.WriteLine("获取所有用户信息:");
IList<TestUser> allUserList = testUserManager.GetAllUser();
foreach (TestUser item in allUserList)
{
Console.WriteLine("用户名:{0} | 密码:{1}" ,item.Username,item.Password);
}
//通过用户名查询用户
Console.WriteLine("******************************");
Console.WriteLine("通过用户名查询用户:");
IList<TestUser> testuserList_1 = testUserManager.GetUserByUserName("xiaoyi");
foreach (var item in testuserList_1)
{
Console.WriteLine("用户名:{0} | 密码:{1}",item.Username,item.Password);
}
//增加用户
Console.WriteLine("******************************");
Console.WriteLine("增加用户:");
TestUser newUser = new TestUser();
newUser.Username = "新用户777";
newUser.Password = "001002";
newUser.Age = 50;
testUserManager.AddUser(newUser);
//删除用户
Console.WriteLine("******************************");
Console.WriteLine("删除用户:");
//删除上面新添加的用户
testUserManager.DeleteUserById(newUser.Id);
//修改用户
Console.WriteLine("******************************");
Console.WriteLine("修改用户:");
IList<TestUser> testuserList_2 = testUserManager.GetUserByUserName("xiaoyi");
//修改所有用户中的第一个用户的密码为abcdefg
allUserList[0].Password = "abcdefg";
testUserManager.ModifyUser(allUserList[0]); //最后获取所有用户信息
Console.WriteLine("最后获取所有用户信息:");
IList<TestUser> allUserList_1 = testUserManager.GetAllUser();
foreach (TestUser item in allUserList)
{
Console.WriteLine("用户名:{0} | 密码:{1}", item.Username, item.Password);
} Console.ReadKey();
}
}
}
3.创建Manager类,演示对TestUser进行增删改查功能的更多相关文章
- 共享参数ContentProvider 类与数据库绑定,如何通过共享参数测试类,测试数据库的增删改查功能
Intent可以传一个对象 当两个界面之间跳转时,需要传递一个对象过去,是通过使用Bundle类,并且实体类需要serializable实现序列化,传递方法如下: 定义一个静态常量作为key值 pub ...
- 使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能
此处采用VS2017+SqlServer数据库 一.创建项目并引用dll: 1.创建一个MVC项目 2.采用Nuget安装EF6.1.3 二.创建Model 在models文件夹中,建立相应的mode ...
- django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面
1.为test.DB数据库预先创建下面数据 1 张三 16 2015-01-02 12 李四 17 2015-01-04 13 王五 14 ...
- JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能
JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)
最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)
近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...
- magento中Model创建以及该Model对于数据库的增删改查
本文是按照magento英文文档照做与翻译的. Model层的实现是mvc框架的一个巨大的部分.它代表了你的应用的数据,或者说大多数应用没有数据是无用的.Magento的Model扮演着一个重要的角色 ...
- 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作
一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...
- IDEA中通过工具类实现对数据库的增删改查
package com.hu.dao; import com.hu.entity.Student; import java.util.List;import java.util.Map; public ...
随机推荐
- cocos: RenderTexture 合并精灵图片
var render = new cc.RenderTexture(730, 450); //创建渲染纹理对象,并数字确定宽度 render.begin(); var sp1 = cc.Sprite. ...
- spring( 二 ) DispatcherServlet
参考文档: https://blog.csdn.net/sjjsh2/article/details/53054203 https://blog.csdn.net/w214019153/article ...
- Thread&ThreadPool、Parallel、Async和Await用法总结
1.线程和线程池Thread&ThreadPool //线程初始化时执行方法可以带一个object参数,为了传入自定义参数,所以执行需单独调用用于传参. Console.WriteLine(& ...
- PDF提取图片(错误纠正)
有个任务需要抽取pdf中的图片,于是找了一个例子但是有错误,仅此记录下 错误1. AttributeError: 'Document' object has no attribute 'getObje ...
- Java中调用存储过程
dao层: import java.util.Map; public interface AppGthdDao { public String gthd(Map map); } mapper层 < ...
- Angular中上传图片到分布式文件服务器FastDFS上
使用步骤 1.上传下载需要的依赖 2.springmvc中配置多媒体解析器并加载 <!-- 配置多媒体解析器 --> <bean id="multipartResolver ...
- [转帖]Select count(*)和Count(1)的区别和执行方式
Select count(*)和Count(1)的区别和执行方式 https://www.cnblogs.com/VicLiu/p/11672303.html 在SQL Server中Count(*) ...
- 基于word2vec的文档向量模型的应用
基于word2vec的文档向量模型的应用 word2vec的原理以及训练过程具体细节就不介绍了,推荐两篇文档:<word2vec parameter learning explained> ...
- linux服务器可以访问IP访问不了域名地址
1.curl www.baidu.com报错,curl 183.232.231.173可以或者nslookup+域名,nslookup+IP2.这个是因为linux服务器没有配置DNS域名服务器地址导 ...
- [转] js网络请求跨域问题汇总(携带cookie)
前端程序使用extjs写,在本地测试,发送请求到服务器时,发现存在跨域的问题,cookie也没有set成功,于是乎在这里整理一下解决过程 由于篇幅较长,不想看解决过程的可以翻到最后看总结1.跨域允许2 ...