学习.MVC涉及增、删、查、改这四个过程,也是主要的,在这之前,你要操作这四个过程,先要把相应的数据表看懂,数据表看不懂就很难知道自己要新增什么,删除什么,查询什么,修改什么,看不懂他们之间的关系,就会出现增、删、查、改四个过程中实现不了自己所需要的效果,也很容易出现删错数据、删除留下垃圾数据,增加、修改出现同样的数据这些问题,从而再操作数据库时第一要先看明白数据表的关系,再从自己有个模糊的知道自己要增、删、差、改那些内容,这样不会出现那么多的问题。

下面是一下简单的增,删,查,改:

增删改查springMVC 增删改查流程图_数据

这张就是接下来操作的数据表, 先看这张表的关系,查询科目信息,只需要根据他的主键ID直接排序,不需要任何的操作,也是在增、删、查、改中最简单的一项操作。

在操作之前,增、删、查、改是对数据库的操作,先实例化个Model

增删改查springMVC 增删改查流程图_数据_02

Model有了,继续上面操作,直接查询科目表排序

增删改查springMVC 增删改查流程图_空字符串_03

LayuiTablePage 只是一个实体类 用于分页操作,数据库的数据不能在MVC中直接操作所以要自己命名的范围变量接收数据库的数据在继续完成下面的操作,就直接排序,当然也可以根据要看的数据进行排序 ,orderby 是倒序, select 是查询,这样就查询出所有的数据,然后就计算数据的总条数,在以列表形式进行分页 List表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。类型参数: T:列表中元素的类型。Skip: 跳过序列中指定数量的元素,然后返回剩余的元素。Take: 从序列的开头返回指定数量的连续元素。LayuiTableData 知识一个实体类用于封装科目表的数据,再实例化科目表 以总行数(count)和数据(data) 返回到页面;这样就达到查询的效果,

再来新增:

上面的数据表看的出来科目就一个科目,不用进行过多的操作,直接判断科目名称不能同样就可以了,

增删改查springMVC 增删改查流程图_空字符串_04


你要新增一条数据,是在数据表的新增一个名称,所以你要告诉MVC你要再那张表新增数据,传进来的新增的数据叫什么名称,就有了上面的第一句操作, ReturnJsonVo记录状态当数据出现某些意外是会返回文本提示,try—catch捕获数据异常,一般多用于Single单条数据操作,再对数据的完整行进行判断,不能给数据传进来是null&空字符串类型,如果是null&空字符串类型那将返回false直接跳到参数异常,没有是null&空字符串类型那么直接到下一步查询以前旧的信息等于新传进来的信息查询总条数(Count),再判断查询是否输进的信息是否已经存在,已存在就提醒相同,不存在就新增,来到了myModel.SYS_Subject.Add(?);前面做了那么多工作就为了这一句:Add(?)新增,新增完了就保存,判断myModel.SaveChanges()是否大于0 大于新增+1,返回true,否则失败,这样就新增数据成功。

修改&数据回填:

在修改之前要做数据回填,要把数据回填了才能做出修改,不会填数据会出现404,修改会直接报数据异常,所以先把数据回填了,

增删改查springMVC 增删改查流程图_增删改查springMVC_05


回填数也很简单,拿出原来的数据表,根据视图那边传过来的参数,控制器接收到参数,就直接查询科目表ID等于传进来的参数,查询一条信息,返回给页面;

增删改查springMVC 增删改查流程图_MVC_06


回填数据有了,就继续修改:

增删改查springMVC 增删改查流程图_增删改查springMVC_07


修改跟新增很像,也要告诉控制器要修改那张表 就可以了,进来也要判断数据的完整性,不完整返回false,完整继续执行下一步操作,原来的科目ID不能等于修改后的ID,否则返回false,原来的科目等于修改后的科目,查询总条数(count),修改后的数据和原来的不一样就保存,myModel.Entry(?).State = System.Data.Entity.EntityState.Modified,修改的核心,判断数据是否保存myModel.SaveChanges() 大于0就返回true+1,否则返回false,这样就修改成功了;

删除:

删除也很简单,就如上面的数据表看外表是否存在科目Id 有就把他查询出来,并返回false提醒,从而减少垃圾数据;

增删改查springMVC 增删改查流程图_数据_08


删除很简单,跟信息回填没什么不同,就多了判断,跟回填信息一样根据视图那边传过来的参数,控制器接收到参数,让控制器知道你要删除那条信息就可以了,先看上面的数据表,一张知识点和规则表存在科目ID,那么就把科目ID查出来,先查知识点表,查询知识点里的科目Id等于传进来的参数查询数据的总条数,判断数据是否等于0,如果不等于就返回false并做出提示,等于就继续下一步操作,查询规则表里的科目ID等于传进来的参数总条数是否等于0,如果不等于0就返回false并做出提示等于就继续下一步操作,myModel.SYS_Subject.Remove(?)删除的核心,判断数据是否保存成功myModel.SaveChanges() 大于0就返回true+1,小于0就做出先赢的提示,这样就删除了信息。

增、删、查、改 就结束了,这只是简单的增、删、查、改。