好的,现在我们来实现删除模板(model表删除记录)的功能,删除功能不难做,主要我们这次实现的是批量删除功能。

一.思路整理

首先我们删除模板是根据模板的id来删除的,不管是单项删除还是批量删除,我们这里使用layui获取当前行的功能就能获取模板的id

其次不管单项删除还是批量删除,只要将id放入数组中,后端对数组进行遍历,就能达到单项删除/批量删除

二.代码实现

思路实现以后,我们上代码。

View层:

 var id_array = []; //获取选中行// 获取选中行 这里我们可以选择删除 这里的id_array是一个隐藏的值 device对应device_id user对应code survry对应model_idtable.on('checkbox(test)', function(obj) { //监听复选框if (obj.type == 'all') {if (obj.checked == true) {var data = table.cache.dataCheck; //批量操作的表格复选框id_array = [];for (var l = 0; l < data.length; l++) {id_array.push(data[l].model_id);}console.log(id_array);} else {id_array = [];}} else {if (obj.checked == true) {id_array.push(obj.data.model_id);console.log(id_array);} else {var index = id_array.indexOf(obj.data.model_id);id_array.splice(index, 1);console.log(id_array);}}});$('#btn-delete-all').click(function() { //删除全部通过一个获取选中行的值,来删除layer.confirm('您确定要删除这些数据吗?', function(index) {//打开正在加载中弹出层layer.msg('加载中', {icon: 16,shade: 0.01,time: '9999999'});var url = "survey/del_model";var data = {model_id: id_array //这里将当前的model_id传到后端}$.post(url, data, function(data) {layer.close(layer.index); //关闭正在加载中弹出层console.log(id_array);if (data.code == 1) {layer.msg(data.msg, {icon: 6});location.reload();} else {layer.msg(data.msg, {icon: 5});}}, "json");});});

首先对数据表格进行监听,如果数据表格的当前行被选中,则往id_array数组中push一个id,有多少个,push多少个,而后我们将数组用ajax上传,键名为model_id.

Controller层:

    //返回数据用responseBody//删除model@RequestMapping(value="Index/survey/del_model")@ResponseBodypublic Map<String,Object> delModel(HttpServletRequest req) throws IOException {String[] arr = req.getParameterValues("model_id[]");//前端传来的modelIdint code;String msg;//        if(arr!=null)
//        return api.returnJson(3,arr[0]);for (int i = 0; i < arr.length; i++) {List<Choose> is_answer=chooseService.findChooseByModelId(arr[i]);if (!is_answer.isEmpty()) {return api.returnJson(3,"抱歉,题目已经被作答,无法删除");}continue;}//如果没有 那么当前选中模板的题目都没有被答过 作级联删除 删除模板表 删除题目表 删除选项表(根据model查出Qsn 再根据qsnId删除Option)int is_del=modelService.deleteModelByIds(arr);//删除模板表for (int i = 0; i <arr.length ; i++) {int is_del_qsn=qsnService.deleteModel2Qsn(arr[i]);//删除题目表List<Qsn> qsnList=qsnService.findQsnList(arr[i]);//得到题目System.out.println(qsnList);for (int j = 0; j <qsnList.size() ; j++) {//删除选项表int isDelOptions=detailService.deleteOptionsByQsnId(qsnList.get(j).getQsnId());}}//先查询模板下的题目list 然后遍历list,根据item.id 即qsnId来删除
//        String[] is_del_option 还缺删除选项表的逻辑if (is_del!=0){code=1;msg="success";}else {code=2;msg="fail";}return api.returnJson(code,msg);}

这里进行说明一下,区别于tp5,我们使用httpservlet.request的getParameterValues()方法来获取前端传入的array数组

Service层:
modelService:

package com.sl.example.service;import com.sl.example.pojo.Model;import java.util.List;public interface ModelService {public List<Model> findAllModel();public int deleteModelById(String modelId);public int deleteModelByIds(String[] arr);public int InsertModel(Model model);public Model selectModelById(String modelId);
}

modelServiceImpl:

package com.sl.example.service;import com.sl.example.dao.ModelMapper;
import com.sl.example.pojo.Model;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import javax.annotation.Resource;
import java.util.List;@Service("modelService")
@Transactional
public class ModelServiceImpl implements ModelService{@Resourceprivate ModelMapper modelMapper;@Overridepublic List<Model> findAllModel() {return modelMapper.selectAllModel();}@Overridepublic int deleteModelById(String modelId) {return modelMapper.deleteByPrimaryKey(modelId);}@Overridepublic int deleteModelByIds(String[] arr) {return modelMapper.deleteByIds(arr);}@Overridepublic int InsertModel(Model model) {return modelMapper.insertSelective(model);}@Overridepublic Model selectModelById(String modelId) {return modelMapper.selectByPrimaryKey(modelId);}
}

将DAO层也贴出来:

package com.sl.example.dao;import com.sl.example.pojo.Model;import java.util.List;public interface ModelMapper {int deleteByPrimaryKey(String modelId);int deleteByIds(String[] list);int insert(Model record);int insertSelective(Model record);Model selectByPrimaryKey(String modelId);List<Model> selectAllModel();int updateByPrimaryKeySelective(Model record);int updateByPrimaryKey(Model record);
}

对应的ModelMapper.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sl.example.dao.ModelMapper" ><resultMap id="BaseResultMap" type="com.sl.example.pojo.Model" ><constructor ><idArg column="model_id" jdbcType="VARCHAR" javaType="java.lang.String" /><arg column="name" jdbcType="VARCHAR" javaType="java.lang.String" /><arg column="time" jdbcType="DATE" javaType="java.util.Date" /><arg column="create_name" jdbcType="VARCHAR" javaType="java.lang.String" /><arg column="rmk2" jdbcType="VARCHAR" javaType="java.lang.String" /><arg column="rmk3" jdbcType="VARCHAR" javaType="java.lang.String" /><arg column="rmk4" jdbcType="VARCHAR" javaType="java.lang.String" /><arg column="rmk5" jdbcType="VARCHAR" javaType="java.lang.String" /></constructor></resultMap><sql id="Base_Column_List" >model_id, name, time, create_name, rmk2, rmk3, rmk4, rmk5</sql><select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >select <include refid="Base_Column_List" />from t_gr_qsn_modelwhere model_id = #{modelId,jdbcType=VARCHAR}</select><select id="selectAllModel" resultMap="BaseResultMap" resultType="java.util.List">select<include refid="Base_Column_List" />from t_gr_qsn_model</select><delete id="deleteByPrimaryKey" parameterType="java.lang.String" >delete from t_gr_qsn_modelwhere model_id = #{modelId,jdbcType=VARCHAR}</delete><delete id="deleteByIds" parameterType="java.util.Arrays">delete from t_gr_qsn_modelwhere model_id in<foreach collection="array" index="index" item="item" open="(" separator="," close=")">#{item}</foreach></delete><insert id="insert" parameterType="com.sl.example.pojo.Model" >insert into t_gr_qsn_model (model_id, name, time, create_name, rmk2, rmk3, rmk4, rmk5)values (#{modelId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{time,jdbcType=DATE}, #{createName,jdbcType=VARCHAR}, #{rmk2,jdbcType=VARCHAR}, #{rmk3,jdbcType=VARCHAR}, #{rmk4,jdbcType=VARCHAR}, #{rmk5,jdbcType=VARCHAR})</insert><insert id="insertSelective" parameterType="com.sl.example.pojo.Model" >insert into t_gr_qsn_model<trim prefix="(" suffix=")" suffixOverrides="," ><if test="modelId != null" >model_id,</if><if test="name != null" >name,</if><if test="time != null" >time,</if><if test="createName != null" >create_name,</if><if test="rmk2 != null" >rmk2,</if><if test="rmk3 != null" >rmk3,</if><if test="rmk4 != null" >rmk4,</if><if test="rmk5 != null" >rmk5,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="modelId != null" >#{modelId,jdbcType=VARCHAR},</if><if test="name != null" >#{name,jdbcType=VARCHAR},</if><if test="time != null" >#{time,jdbcType=DATE},</if><if test="createName != null" >#{createName,jdbcType=VARCHAR},</if><if test="rmk2 != null" >#{rmk2,jdbcType=VARCHAR},</if><if test="rmk3 != null" >#{rmk3,jdbcType=VARCHAR},</if><if test="rmk4 != null" >#{rmk4,jdbcType=VARCHAR},</if><if test="rmk5 != null" >#{rmk5,jdbcType=VARCHAR},</if></trim></insert><update id="updateByPrimaryKeySelective" parameterType="com.sl.example.pojo.Model" >update t_gr_qsn_model<set ><if test="name != null" >name = #{name,jdbcType=VARCHAR},</if><if test="time != null" >time = #{time,jdbcType=DATE},</if><if test="createName != null" >create_name = #{createName,jdbcType=VARCHAR},</if><if test="rmk2 != null" >rmk2 = #{rmk2,jdbcType=VARCHAR},</if><if test="rmk3 != null" >rmk3 = #{rmk3,jdbcType=VARCHAR},</if><if test="rmk4 != null" >rmk4 = #{rmk4,jdbcType=VARCHAR},</if><if test="rmk5 != null" >rmk5 = #{rmk5,jdbcType=VARCHAR},</if></set>where model_id = #{modelId,jdbcType=VARCHAR}</update><update id="updateByPrimaryKey" parameterType="com.sl.example.pojo.Model" >update t_gr_qsn_modelset name = #{name,jdbcType=VARCHAR},time = #{time,jdbcType=DATE},create_name = #{createName,jdbcType=VARCHAR},rmk2 = #{rmk2,jdbcType=VARCHAR},rmk3 = #{rmk3,jdbcType=VARCHAR},rmk4 = #{rmk4,jdbcType=VARCHAR},rmk5 = #{rmk5,jdbcType=VARCHAR}where model_id = #{modelId,jdbcType=VARCHAR}</update>
</mapper>

我们来试验一下。

1.gif

成功啦,下一节我们讲对应某一套题目模板下的题目的增删。

SSM+maven实现答题管理系统(二)相关推荐

  1. 计算机毕业设计开题报告基于ssm maven健身房俱乐部管理系统

  2. ssm毕设项目计件工资管理系统15ik6(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目计件工资管理系统15ik6(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HB ...

  3. SSM毕设项目游泳馆管理系统851a0(java+VUE+Mybatis+Maven+Mysql)

    SSM毕设项目游泳馆管理系统851a0(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX( ...

  4. ssm毕设项目酒店管理系统08281(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目酒店管理系统08281(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBui ...

  5. 【JAVA程序设计】(C00043)基于SSM非maven的人事管理系统

    基于SSM非maven的人事管理系统 项目简介 项目获取 开发环境 项目技术 运行截图 运行视频 项目简介 这是一个SSM非maven项目的人事管理系统 功能:登录.用户增删改查.部门增删改查.职位增 ...

  6. SSM毕设项目酒店餐饮管理系统ls1a2(java+VUE+Mybatis+Maven+Mysql)

    SSM毕设项目酒店餐饮管理系统ls1a2(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX ...

  7. ssm毕设项目美容院管理系统jn8j9(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目美容院管理系统jn8j9(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBu ...

  8. ssm毕设项目美发管理系统1i016(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目美发管理系统1i016(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBui ...

  9. ssm毕设项目缺陷管理系统d6ltf(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目缺陷管理系统d6ltf(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBui ...

最新文章

  1. Office 2010 64位版本
  2. 无法将项目和文件的编码格式从UTF-8转为GBK
  3. python os.urandom 安全_python SystemRandom/os.urandom总是有足够的熵来获得良好的加密
  4. mysql中模糊查询的四种用法
  5. linux 内核fpic,linux编译动态库 fPIC作用
  6. 【HTML5】在canvas上绘制简单的2D图形 (+太极图)
  7. 服务 自动启动参数_使用ansible部署springboot系列02服务托管与jvm参数管理
  8. maven工程打包老是报错_Maven 项目打包及启动时的报错解决
  9. 解决ubuntu20.04虚拟机无法上网的问题
  10. 这可能才是PSV破解不了的真正原因—破解的无奈
  11. excel相同字段多行合并_EXCEL里如何快速把多行数据合并为一行并以逗号隔开?...
  12. 金蝶k3服务器重装账套怎么恢复,金蝶KIS旗舰版、金蝶K3账套备份、恢复操作教程...
  13. 如何用电脑制作VR全景图
  14. ssm毕设项目民宿预定管理系统20sxh(java+VUE+Mybatis+Maven+Mysql+sprnig)
  15. 角频率Ω和数字频率w的物理含义
  16. android 高德卫星地图数据,白马地图 Bmap for Android v7.3.81 强大高德百度地图应用|张小北...
  17. SR(Segment Routing)不是MPLS的优化和升级
  18. 客户端访问https时应无浏览器(含终端)安全警告信息;_Http升级Https(Let#x27;s Encrypt)...
  19. 高等数学 宋浩 笔记一
  20. A Novel Proof-of-Reputation Consensus for Storage Allocation in Edge Blockchain Systems 精读笔记(三)

热门文章

  1. java加载不进去_java sql添加不进去
  2. mysql2008jar包下载_求java jdbc 连sql server2008的jar包
  3. 苹果终端date命令_mac 终端 常用命令
  4. c语言回文串判定代码_C语言编写一个程序,判断输入的一个字符串是否是回文。...
  5. java类的对象无参与有参_java无参与有参以及setter和getter方法(了解)
  6. 计算机科学与技术专业术语
  7. 漫谈时序设计(3)走进时序约束的大门!
  8. 【 C 】经典抽象数据类型(ADT)之内存分配
  9. 1.2 Spyder的基本使用
  10. JavaScript多态