mysql sqlsugar_.net core +mysqlSugar(最为简单的增删改查)
首先建立.net Core API - empty 這個(gè)就不說了
然后創(chuàng)建新的Controller
記得添加路由
[Route("api/Users")]
然后在Nuget Packages安裝 所需安裝包
這里是用mysql所以下載如下的mysqlSugarCore
(切記不要忘記安裝Mysql.Data)
創(chuàng)建實(shí)例化class文件DbText.cs
用于連接數(shù)據(jù)庫(kù),初始化
privateDbText()
{
}public static string ConnectionString { get; set; }public staticSqlSugarClient GetInstance()
{var db = newSqlSugarClient(ConnectionString);returndb;
}
當(dāng)然記得引用MySqlSugar的庫(kù)
然后在appsetting.json中創(chuàng)建連接字符串
點(diǎn)擊Startup.cs在ConfigureServices函數(shù)中:
public voidConfigureServices(IServiceCollection services)
{
services.AddMvc();
DbText.ConnectionString= Configuration.GetConnectionString("DefaultConnection");
}
然后創(chuàng)建model層這里我根據(jù)數(shù)據(jù)庫(kù)中的字段來創(chuàng)建
Ok接下來前期的工作完成了 ,利用sqlSugar進(jìn)行基本的增刪改查操作
Select
創(chuàng)建select接口
[HttpPost("select")]public stringSelect(Users user)
{using (var db =DbText.GetInstance()) {//查詢所有數(shù)據(jù)的前五條并轉(zhuǎn)化為Json格式
var top5 = db.Queryable().OrderBy(it =>it.username).ToJson();//簡(jiǎn)單的條件查詢,查詢表中所有女生的名字
var girl = db.Queryable().Where(it =>it.sex ==0).Select("name").ToJson();returngirl;
}
}
點(diǎn)擊運(yùn)行后?用postman進(jìn)行調(diào)試可以看到從數(shù)據(jù)庫(kù)中取出的前5條數(shù)據(jù)以JSon的格式返回或者表中女生的名字
Insert
接下來嘗試用sqlsugar實(shí)現(xiàn)增加的操作
[HttpPost("add")]public stringRegister(Users user)
{//這里直接不加判斷就增加一條學(xué)生數(shù)據(jù)
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;
}
}
結(jié)果
發(fā)現(xiàn)數(shù)據(jù)庫(kù)匯總的確多了一條數(shù)據(jù)插入成功
順便來研究一下這個(gè)db.Insert()的返回值到底是什么東西
我換了一組值進(jìn)行再次post
可以發(fā)現(xiàn)status從7變成了8我觀察數(shù)據(jù)庫(kù)發(fā)現(xiàn)這就是我的主鍵自增字段id的值(話說為什么就不是bool值呢)
Delete
然后來進(jìn)行刪除操作
[HttpPost("delete")]public boolRemoveUser(Users user)
{using (var db =DbText.GetInstance())
{//刪除根據(jù)主鍵//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);//同時(shí)滿足條件刪除
bool status = db.Delete(new Users() { username = "issa2018",password = "123457"});returnstatus;
}
}
運(yùn)行postman后發(fā)現(xiàn)返回false我去 難道不是我想的這樣??
然后我改變代碼
bool status = db.Delete(new Users() { userid = 8});
這樣就返回為true了 所以這個(gè)方法只能用于主鍵為參數(shù)!!!
最無(wú)語(yǔ)的就是我將代碼改成如下(密碼是錯(cuò)誤的)以為他要同時(shí)滿足條件才能刪除
bool status = db.Delete(new Users() { userid =7,password = "123445"});
但返回結(jié)果卻是true(也就是仍然刪除了userid為7的列)
最后發(fā)現(xiàn)滿足多條件刪除得這么來,感覺稍微有點(diǎn)麻煩啊
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())
{//支持字典更新,適合動(dòng)態(tài)權(quán)限//var dic = new Dictionary();//dic.Add("name", "第十三條");//dic.Add("areaId", "1");//db.Update(dic, 13);//這個(gè)更新會(huì)把除了更新的東西以外的全部值都為空賦進(jìn)去因?yàn)槭前烧麄€(gè)user帶進(jìn)去了//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傳遞數(shù)據(jù)更新成功
下一次會(huì)整理更多有用的sqlsugar的功能
總結(jié)
以上是生活随笔為你收集整理的mysql sqlsugar_.net core +mysqlSugar(最为简单的增删改查)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《日落望江赠荀丞诗》第八句是什么
- 下一篇: centos 多个mysql数据库_Ce