mysql sqlsugar_.net core +mysqlSugar(最为简单的增删改查)

首先建立.net Core API - empty 这个就不说了

然后创建新的Controller

20180830141204193333.png

记得添加路由

[Route("api/Users")]

然后在Nuget Packages安装 所需安装包

20180830141204383750.png

这里是用mysql所以下载如下的mysqlSugarCore

20180830141204674747.png

(切记不要忘记安装Mysql.Data)

创建实例化class文件DbText.cs

用于连接数据库,初始化

privateDbText()

{

}public static string ConnectionString { get; set; }public staticSqlSugarClient GetInstance()

{var db = newSqlSugarClient(ConnectionString);returndb;

}

当然记得引用MySqlSugar的库

然后在appsetting.json中创建连接字符串

20180830141204847588.png

点击Startup.cs在ConfigureServices函数中:

public voidConfigureServices(IServiceCollection services)

{

services.AddMvc();

DbText.ConnectionString= Configuration.GetConnectionString("DefaultConnection");

}

然后创建model层这里我根据数据库中的字段来创建

20180830141205053629.png

Ok接下来前期的工作完成了 ,利用sqlSugar进行基本的增删改查操作

Select

创建select接口

[HttpPost("select")]public stringSelect(Users user)

{using (var db =DbText.GetInstance()) {//查询所有数据的前五条并转化为Json格式

var top5 = db.Queryable().OrderBy(it =>it.username).ToJson();//简单的条件查询,查询表中所有女生的名字

var girl = db.Queryable().Where(it =>it.sex ==0).Select("name").ToJson();returngirl;

}

}

点击运行后 用postman进行调试可以看到从数据库中取出的前5条数据以JSon的格式返回或者表中女生的名字

20180830141205284083.png

Insert

接下来尝试用sqlsugar实现增加的操作

[HttpPost("add")]public stringRegister(Users user)

{//这里直接不加判断就增加一条学生数据

using (var db =DbText.GetInstance())

{var status =db.Insert(user);//查询刚插入的sex是否有值

var sex = db.Queryable().Single(it => it.userid ==status.ObjToInt()).sex;return "status:"+status.ToString() + ",sex:" +sex;

}

}

结果

20180830141205462783.png

发现数据库汇总的确多了一条数据插入成功

顺便来研究一下这个db.Insert()的返回值到底是什么东西

我换了一组值进行再次post

20180830141205752803.png

可以发现status从7变成了8我观察数据库发现这就是我的主键自增字段id的值(话说为什么就不是bool值呢)

Delete

然后来进行删除操作

[HttpPost("delete")]public boolRemoveUser(Users user)

{using (var db =DbText.GetInstance())

{//删除根据主键//db.Delete(10);//主键批量删除//db.Delete(new string[] { "100", "101", "102" });//假删除//db.FalseDelete("is_del", 100);//等同于 update school set is_del=1 where id in(100)//db.FalseDelete("is_del", it=>it.id==100);//同时满足条件删除

bool status = db.Delete(new Users() { username = "issa2018",password = "123457"});returnstatus;

}

}

运行postman后发现返回false我去 难道不是我想的这样??

然后我改变代码

bool status = db.Delete(new Users() { userid = 8});

这样就返回为true了 所以这个方法只能用于主键为参数!!!

最无语的就是我将代码改成如下(密码是错误的)以为他要同时满足条件才能删除

bool status = db.Delete(new Users() { userid =7,password = "123445"});

但返回结果却是true(也就是仍然删除了userid为7的列)

最后发现满足多条件删除得这么来,感觉稍微有点麻烦啊

bool status = db.Delete("username=@username and password=@password", new { username = user.username,password = user.password});

那我还不如这样

bool status = db.Delete("username=‘"+user.username+"‘ and password=‘"+user.password+"‘");

Update

先看下如何用sqlsuagr怎么修改吧

[HttpPost("update")]public boolEditInfo(Users user)

{using (var db =DbText.GetInstance())

{//支持字典更新,适合动态权限//var dic = new Dictionary();//dic.Add("name", "第十三条");//dic.Add("areaId", "1");//db.Update(dic, 13);//这个更新会把除了更新的东西以外的全部值都为空赋进去因为是吧整个user带进去了//var updateStatus = db.Update(new Users { name = user.name, remark = user.remark }, it => it.username == user.username & it.password == user.password);//更新name和remark的值

var updateStatus = db.Update(new { name = user.name, remark = user.remark }, it => it.username == user.username & it.password ==user.password);returnupdateStatus;

}

}

Postman传递数据更新成功

下一次会整理更多有用的sqlsugar的功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于eclipse的indigo版中文注释时字体太小的问题(转)

eclipse目前最新版代号indigo, 在win7上使用时中文注释时字体太小的问题. 为什么会这样? 首先我们应该知道, 在win7系统中, font是有"显示"和"隐藏" 状态的. 默认情况下, eclipse使用的默认字体courier new是处于 "隐藏"下的. 这样当eclipse打开…

webdriver(python)学习笔记七——多层框架定位与智能等待

多层框架或窗口定位: switch_to_frame()switch_to_window()智能等待: implicitly_wait()现在web应用中经常会遇到框架如(frame)或窗口(windows)的应用,这样定位就比较难,有时定位一个…

bbp代码python_如何正确计算加密债券价格的BBP(Bollinger波段百分比)?

我试图用这个代码计算python中的BBP(Bollinger频带百分比)。然而,我的^{cd1>}函数返回^{{cd2>}或^{cd3>}用于^{cd4>}。当我使用一些硬币收盘价时,令人困惑的是,这个函数返回正确的^{cd4>}数字(而不是inf)。这是我的python代码…

ASP.NET学习路线图

转自:http://www.cnblogs.com/huangmeimujin/archive/2011/08/08/2131242.html 如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的…

centos 多个mysql数据库_CentOS6.5 一台服务器同时安装多个Mysql数据库

建用户与组groupadd mysqluseradd -g mysql mysql下载源码:wget https://downloads.mariadb.org/interstitial/mariadb-10.1.10/source/mariadb-10.1.10.tar.gztar -xvf mariadb-10.1.10.tar.gz1、编译:cmake . -DCMAKE_INSTALL_PREFIX/var/lib/mysql33…

MVC3学习 一 ViewBag和Html.Raw

ViewBag类似于JavaScript的语法,在赋值时动态赋值,比如ViewBag.Dog“哈哈” ,这样就会创建一个ViewBag.Dog的对象,供前端页面调用。 在调用时,前台页面用razor方式,ViewBag 直接使用。 public class HomeCo…

PHPCMS源码分析(二)

index.php中引入了phpcms框架的入口文件,下面我们看下这个入口文件 /phpcms/base.php define(IN_PHPCMS, true);//防止恶意调用//PHPCMS框架路径 define(PC_PATH, dirname(__FILE__).DIRECTORY_SEPARATOR); //重新定义网站根目录 if(!defined(PHPCMS_PATH)…

mysql 5.6密钥_MySQL的密钥文件不正确

我遇到了InnoDB的问题(表是最初的MyISAM,但是之前将它转换为InndoB)表;我正在尝试运行此查询:SELECTposts.id,posts.post_titleFROMrss_posts AS postsINNER JOIN rss_feeds AS feeds ON posts.blog_idfeeds.idWHEREfeeds.blog_language1ORDER BYposts.post_date_db…

JS-取出字符串中重复次数最多的字符并输出

/**取出字符串中重复字数最多的字符 */ var words sdfghjkfastgbyhnvdstyaujskgfdfhlaa;      //创建字符串 var word,                          //单个字符length;                          //该字符的长度 //…

windows下查看静态库和动态库的导出函数

在window下查看动态库的导出函数可以用vs自带的Depends工具; 查看静态库的信息要用命令行来实现: dumpbin /LINKERMEMBER Test.lib > 1.txt 上面的功能是将静态库的信息导出保存在1.txt文件中,这样就可以在1.txt文件中查看相关的信…

linux ll 文件大小单位_该如何改善 Linux 系统性能?

系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能,它…

深入Javascript中apply、call、bind

最近在看一下node package的源码,发现很多里面都包含了function这个对象的apply、call、bind这三个方法,于是想拿出来再看看。。 apply、call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context&#x…

优秀案例!教您如何设计现代简约风格网页

我们看到越来越多的设计师开始拥抱简约的网站设计方法,消除网站不必要的元素,保留真正重要的内容,干净、直观的设计,就像今天的我们将展示的这些网站。 下面是一组不同风格的简约设计的网站例子,美丽的导航、整洁的菜单…

怎么清理mysql的死链接_什么是死链接?如何正确处理死链接

什么是死链接?我们应该如何正确处理死链接呢?小刚SEO为你解答。什么是死链接?因链接更改或搜索引擎所收录的网站路径被删除了,形成没法打开的死链接。死链接的危害:1.死链数据过多时,对网站访问体验和用户转…

数据分页和使用存储过程的数据分页

--使用存储过程的数据分页 --pageSize 一页有多少条 --pageIndex 第几页 --totalCount 总共有多少条 --分页的第一种方法 select top(10) * from Ams_Area where ar_id not in ( Select top(0) ar_id from Ams_Area order by ar_id ) order by ar_id --分页的第二种方…

mysql generaton_Mysql 集成随机唯一id mysql unique number generation

一句代码:SELECT FLOOR(10000 RAND() * 89999) AS random_numberFROM table1WHERE "random_number" NOT IN (SELECT unique_id FROM table2)LIMIT 1随机生成5位数字,并且不重复。上面的代码真是给人无限的联想力。例如:function g…

NavMeshAgent 动态加载障碍物

如果你想让游戏人物绕开一些物体, 这些物体动态生成出来的.只需要给物体添加NavMeshObstacle组件即可 1. 绿色方块添加NavMeshObstacle组件 2. 红色方块没有添加NavMeshObstacle组件,被小球穿透了%>_<% 转载于:https://www.cnblogs.com/plateFace/p/4385629.html

多任务 schedule python_Python3.6 Schedule 模块定时任务 (实例讲解)

Python3.6 Schedule 模块定时任务 (实例讲解)Python 是一种面向对象解释型计算机程序设计语言, 由 Guido van Rossum 于 1989 年底发明, 第一个公开发行版发行于 1991 年 Python 语法简洁而清晰, 具有丰富和强大的类库它常被昵称为胶水语言, 它能够把用其他语言制作的各种模块 …

UVa 11468 (AC自动机 概率DP) Substring

将K个模板串构成一个AC自动机&#xff0c;那些能匹配到的单词节点都称之为禁止节点。 然后问题就变成了在Tire树上走L步且不经过禁止节点的概率。 根据全概率公式用记忆化搜索求解。 1 #include <cstdio>2 #include <cstring>3 #include <queue>4 using name…

mysql 检查点_my05_mysql检查点简述

简单描述一下mysql 检查点&#xff0c;对mysql数据库恢复的理解有所帮助。数据库版本mysql> selectversion();-----------| version() |-----------| 8.0.11 |-----------1 row in set (0.00 sec)检查点查看mysql>show engine innodb status\G;---LOG---Log sequence num…