接上一篇文章 创建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进行增删改查功能的更多相关文章

  1. 共享参数ContentProvider 类与数据库绑定,如何通过共享参数测试类,测试数据库的增删改查功能

    Intent可以传一个对象 当两个界面之间跳转时,需要传递一个对象过去,是通过使用Bundle类,并且实体类需要serializable实现序列化,传递方法如下: 定义一个静态常量作为key值 pub ...

  2. 使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能

    此处采用VS2017+SqlServer数据库 一.创建项目并引用dll: 1.创建一个MVC项目 2.采用Nuget安装EF6.1.3 二.创建Model 在models文件夹中,建立相应的mode ...

  3. django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面

    1.为test.DB数据库预先创建下面数据 1    张三    16    2015-01-02    12    李四    17    2015-01-04    13    王五    14  ...

  4. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能

    JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...

  5. 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)

    最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...

  6. 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)

    近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...

  7. magento中Model创建以及该Model对于数据库的增删改查

    本文是按照magento英文文档照做与翻译的. Model层的实现是mvc框架的一个巨大的部分.它代表了你的应用的数据,或者说大多数应用没有数据是无用的.Magento的Model扮演着一个重要的角色 ...

  8. 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作

    一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...

  9. IDEA中通过工具类实现对数据库的增删改查

    package com.hu.dao; import com.hu.entity.Student; import java.util.List;import java.util.Map; public ...

随机推荐

  1. java十题

    这是我收集的10个最棘手的Java面试问题列表.这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题.你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Jav ...

  2. Spring事务调用类自己方法失效解决办法和原因

    问题 正常情况下,我们都是在controller里调用service里的方法,这个方法如果需要加事务,就在方法上加上@Transactional,这样是没问题的,事务会生效. 可是如果像下面这样,绕以 ...

  3. Qt对话框之二:模态、非模态、半模态对话框

    一.模态对话框 模态对话框:阻塞同一应用程序中其它可视窗口输入的对话框.模态对话框有自己的事件循环,用户必须完成这个对话框中的交互操作,并且关闭了它之后才能访问应用程序中的其它任何窗口. 显示模态对话 ...

  4. pyqt 调用QT设计师创建的对话框

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验步骤 2.1 ...

  5. numpy 数组增加列,增加行的函数:column_stack,row_stack

    def fun_ndarray(): a = [[1,2,7], [-6,-2,-3], [-4,-8,-55] ] b = [3,5,6] a = np.array(a) b = np.array( ...

  6. golang net之http server

    golang 版本:1.12.9 简单的HTTP服务器代码: package main import ( "net/http" ) type TestHandler struct ...

  7. go-gin-api 规划目录和参数验证(二)

    概述 首先同步下项目概况: 上篇文章分享了,使用 go modules 初始化项目,这篇文章咱们分享: 规划目录结构 模型绑定和验证 自定义验证器 制定 API 返回结构 废话不多说,咱们开始吧. 规 ...

  8. Cookie,Session,Token and Oauth

    Cookie 服务器端生成,发送给客户端,保存用户信息.下一次请求同一网站时会把该cookie发送给服务器. 应用:登录表单自动填充,同样 随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等 ...

  9. 二、hexo+github搭建个人博客的简单使用

    使用hexo+github搭建一个可以外网访问的个人博客,此文用于记录博客初级的使用方法. 新建-编写-生成-部署文章的全过程 1.使用cmd完成 打开命令提示符[win+r输入cmd] 切换到自己本 ...

  10. Redis-1-简介与安装

    目录 1.Redis 简介 2.安装Redis 1.安装gcc redis是c语言编写的 2.下载redis安装包,在root目录下执行 3.解压redis安装包 4.进入redis目录 5.编译安装 ...