博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【springmvc+mybatis项目实战】杰信商贸-17.货物修改+删除
阅读量:6579 次
发布时间:2019-06-24

本文共 4265 字,大约阅读时间需要 14 分钟。

重点知识回顾
a)主从结构:
1)它和主表在mapper有什么不同
按对象来映射(hibernate)
按普通字段来映射(mybatis)
b)前台页面的结构
货物的外键:合同,通过get的方式在url后面加参数(主从)
货物的外键:生产厂家,通过下拉列表的方式(只需要一个id时)
对象方式获得外键:一般是需要多个字段
c)权限管理:细粒度的权限
日常权限系统:角色、用户、权限,它实现主菜单、左侧菜单、URL、按钮
细粒度权限系统:包含上面的所有内容,还要包括数据权限(对数据进行过滤,按人,按部门),分管领导-跨部门,跨人员权限。(单独创建一个维护表)
我们接下来的任务:对货物信息进行修改和删除
先来写修改,我们的Mapper层已经配置好SQL语句了:
update contract_product_c
CONTRACT_ID=#{contractId}, FACTORY_ID=#{factoryId},
FACTORY_NAME=#{factoryName},
PRODUCT_NO=#{productNo},
PRODUCT_IMAGE=#{productImage},
PRODUCT_DESC=#{productDesc},
CNUMBER=#{cnumber},
OUT_NUMBER=#{outNumber},
LOADING_RATE=#{loadingRate},
BOX_NUM=#{boxNum},
PACKING_UNIT=#{packingUnit},
PRICE=#{price},
AMOUNT=#{amount},
FINISHED=#{finished},
EXTS=#{exts},
ORDER_NO=#{orderNo},
where contract_product_id=#{id}
由于我们继承了BaseDao以及BaseImpl,所以我们拥有以下方法:
public void update(T entity) {	this.getSqlSession().update(ns + ".update", entity);}
所以我们的Dao层不再添加代码
同理,我们的Service层在之前已经写好了update的方法:
@Overridepublic void update(ContractProduct contractProduct) {		contractProductDao.update(contractProduct);}
所以我们的Dao层不再添加代码
下面我们来编写Controller层的方法:
//转向修改页面@RequestMapping("/cargo/contractproduct/toupdate.action")public String toupdate(String id,Model model){	ContractProduct obj=contractProductService.get(id);	model.addAttribute("obj", obj);		//准备生产厂家的下拉列表	List
factoryList=factoryService.getFactoryList(); model.addAttribute("factoryList",factoryList); return "/cargo/contract/jContractProductUpdate.jsp";//货物的修改页面}//修改@RequestMapping("/cargo/contractproduct/update.action")public String toupdate(ContractProduct contractProduct,Model model){ contractProductService.update(contractProduct); model.addAttribute("contractId", contractProduct.getContractId()); return "redirect:/cargo/contractproduct/tocreate.action";}
接下来使我们的货物修改的jsp页面:
<%@ page language="java" pageEncoding="UTF-8"%><%@ include file="../../base.jsp"%><%@ include file="../../baselist.jsp"%>    添加货物信息    
修改货物信息
厂家名称: 货号:
货物照片:
数量 装率:
箱数: 单价:
包装单位: 排序号:
货物描述:
之后我们还要添加修改的入口,我们就在货物的列表中新增一个“操作”列,在其中放置“修改”以及“删除”操作的链接:
如图
代码:
序号 厂家名称 货号 数量 包装单位 装率 箱数 单价 总金额 操作
${status.index+1} ${o.factoryName} ${o.productNo} ${o.cnumber} ${o.packingUnit} ${o.loadingRate } ${o.boxNum } ${o.price } ${o.amount} [修改] [删除]
我们选择一项,点击修改

修改其中一个数据,发现修改成功!

实现修改功能成功。
下面我们完成剩下的删除功能
我们的Mapper层已经配置好删除的SQL语句了:
delete from contract_product_c where contract_product_id=#{id}
delete from contract_product_c where contract_product_id in
#{id}
由于我们继承了BaseDao以及BaseImpl,所以我们拥有以下方法:
public void deleteById(Serializable id) {	this.getSqlSession().delete(ns + ".deleteById", id);}public void delete(Serializable[] ids) {	this.getSqlSession().delete(ns + ".delete", ids);}
所以我们的Dao层不再添加代码
同理,我们的Service层在之前已经写好了delete的方法:
@Overridepublic void delete(Serializable[] ids) {	contractProductDao.delete(ids);}@Overridepublic void deleteById(Serializable id) {	contractProductDao.deleteById(id);}
所以我们的Dao层不再添加代码
下面我们来编写Controller层的方法:
//删除@RequestMapping("/cargo/contractproduct/delete.action")public String delete(String contractId,String id,Model model){	contractProductService.deleteById(id);			model.addAttribute("contractId", contractId);			return "redirect:/cargo/contractproduct/tocreate.action";}
删除的链接之前我们写在修改旁边的:
	[修改] 	[删除]
我们现在来测试:
删除成功!

至此,我们的修改和删除方法完成。

转载请注明出处:

你可能感兴趣的文章
Atitit 切入一个领域的方法总结 attilax这里,机器学习为例子
查看>>
设备树驱动API【原创】
查看>>
常用设计模式——创建型
查看>>
Windows 环境下分布式跨域Session共享(转)
查看>>
GIT入门笔记(2)- 典型的工作模式
查看>>
使用HTML5 WebStorage API构建与.NET对应的会话机制
查看>>
MySQL查看修改存储引擎总结
查看>>
[React Router v4] Use the React Router v4 Link Component for Navigation Between Routes
查看>>
c++输入输出
查看>>
eclipse启动优化文章集合
查看>>
linux创建新用户及权限
查看>>
r里面如何实现两列数据合并为一列
查看>>
Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)
查看>>
前人栽树,后人擦屁股
查看>>
Connection reset问题,INFO: I/O exception (java.net.SocketException) caught when processing reques
查看>>
Pycharm使用技巧
查看>>
黄聪:HBuilder左侧项目管理器如何不与标签页一起自动切换
查看>>
[RK3288][Android6.0] 系统按键驱动流程分析【转】
查看>>
linux 定时器
查看>>
[virtualbox] win10与centos共享目录下,nginx访问问题
查看>>