在此之前已经完成了利用sqlsugar连接数据库,并且展现api接口文档,接下来咱们一起利用sqlsugar来实现项目中基础的增删改查功能。
查询所有
首先来看一下最基础的查询功能
/// <summary>
/// 查询所有
/// </summary>
/// <returns></returns>
[HttpGet]
public List<CS_table> Get()
{
var list = Db.Queryable<CS_table>().ToList();
return list;
}
CS_table---之前演示时加的测试实体类
Db---利用sqlsugar连接数据库时定义的连接名字
注意一下:我这是为了方便演示SqlSugarClient提供的基础功能,就把这连接数据库操作都写在控制器上了,一般情况下为了代码的可维护性是不允许直接写在控制器里写太过于复杂的操作的。
现在咱们来看一下查询结果:
可以看到新加的控制器已经显示在这个接口文档里了,咱们可以直接点击Try it out --->Execute来运行一下这个查询所有的程序
OK!没问题。
接下来基础的增删改比较简单,我就放一起了,感兴趣的小伙伴可以看一下sqlsugar官网
/// <summary>
/// 新增
/// </summary>
/// <returns></returns>
[HttpPost]
public Boolean Add(CS_table model)
{
int num = Db.Insertable<CS_table>(model).ExecuteCommand();
if (num == 1)
{
return true;
}
return false;
}
/// <summary>
/// 根据id来删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
public Boolean Delete(int id)
{
int num = Db.Deleteable<CS_table>().Where(x => x.ID == id).ExecuteCommand();
if (num == 1)
{
return true;
}
return false;
}
/// <summary>
/// 根据id来修改
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
public Boolean Update(CS_table model)
{
var num = Db.Updateable<CS_table>().Where(x => x.ID ==
model.ID).ExecuteCommand();
if (num == 1)
{
return true;
}
return false;
}
拿新增举例简单说一下吧
我新增的入参是一个实体类,传值的时候也必须传实体类的每一项,最后运行得到true及证明新增成功,就像这样
注意:我测试时返回的类型是bool类型,操作数据库得到的结果是1 即证明操作成功!
可以看到,确定是新增成功了。
基于以上,已经完成了基础的增删改查,最后分页查询来单独说一下
sqlsugar里提供了简易的分页查询,咱们来试一下
public List<CS_table> Page()
{
//List<CS_table> page =
return Db.Queryable<CS_table>().ToPageList(1, 5);
}
第一个参数pageNumber可以理解成页数,好比我传的1,即表示第一页
第二个参数pageSize可以理解成每页显示的条数
运行后应该显示的是第一页的5条数据,咱们来运行试一下
可以看到5条确实是没问题,至于页数嘛,咱们运行一下查询所有的接口看一下
可以看到默认排序第一页五条显示的没有任何问题,咱们来试一下第二页,第二页应该从id为3,name为33的这条数据开始,
可以看到,建议版的分页查询已经出来了。不过之前说是一个项目,那这些页数和行数肯定都不能在后台写死,这时有的小伙伴就说了,那我把这个页数和条数作为入参,从前台传过来,这样可行?
这样写确实可以,不过没有考虑到分页查询的查询功能,总不能把每个字段都当做入参传值吧?思考.jpg
那要怎么实现呢?
我的做法是封装了一个分页查询的参数类,包含了基础的条数和页数,和动态字段即实现字段的动态传值,下期咱们单独讲一下分页查询的参数类封装。