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 ...
随机推荐
- loj 6051 「雅礼集训 2017 Day11」PATH - 多项式 - 钩子公式
题目传送门 传送门 设 $m = \sum_{i = 1}^{n} a_i$. 总方案数显然等于 $\frac{m!}{\prod_{i = 1}^{n} a_i!}$. 考虑这样一个网格图,第 $i ...
- 使用ipop共享串口提高工作效率
串口登录后,点击共享连接 然后在另外一台电脑,使用Telnet打开共享的串口(两台电脑需要可以网络连接) IP地址为对端IP地址,端口号为对端设置的端口号,点击连接即可
- [BAT脚本] 1、BAT脚本FOR循环操作文件和命令返回实例
Wednesday, 31. October 2018 08:18PM - beautifulzzzz 一.需求 需要在windows上实现一个bat脚本解析json,将json转换为自己想要的key ...
- PCA:主成分分析
PCA的概念: 主要思想是将n维特征映射到k维上,这k维是全新的正交特征,这k维特征被称为主成分,在原数据的基础上重新构造出来k维.就是从原始的空间顺序的找出一组相互正交的坐标轴,新坐标轴的选择和数据 ...
- this的用法-(2019-3)
作为前端程序员,this应该不会陌生,指执行期的上下文,以下总结了this的几种场景: 1.全局作用域下,this指的就是Window,在控制台输出this,返回的是Window对象 2.在一般函数中 ...
- vue 复制文本到剪切板上
1.下载clipboard.js npm install vue-clipboard2 --save 2.引入,可以在mian.js中全局引入也可以在单个vue中引入 import Clipboard ...
- 并查集 + 路径压缩(经典) UVALive 3027 Corporative Network
Corporative Network Problem's Link Mean: 有n个结点,一开始所有结点都是相互独立的,有两种操作: I u v:把v设为u的父节点,edge(u,v)的距离为ab ...
- vue引入bootstrap、jquery
在进行vue的学习,项目中需要引入bootstrap.jquery的步骤. 一.引入jQuery 在当前项目的目录下(就是package.json),运行命令 cnpm install jquery ...
- http响应总结:常见http响应错误总结
工作中经常会被同事问这个http请求为什么调不通,我虽然能解释清楚错误是什么,但是没有总结过,想到刚开始时,也是看了别人的文章才会的,所以总结一下,贡献一下自己的经验. http 404 响应 404 ...
- 可落地的DDD(5)-战术设计
摘要 本篇是DDD的战术篇,也就是关于领域事件.领域对象.聚合根.实体.值对象的讨论.也是DDD系列的完结篇. 这一部分在我们团队争论最多的,也有很多月经贴,比如对资源库的操作应该放在领域服务还是领域 ...