目录
2022年5月四号博客内容SSM框架项目管理-------------超市管理系统(第七课对供应商管理的修改一条记录和删除一条记录)。
经历上面第六课博客的理解上本博客的修改访问流程如同增加一样流程不在说明。直接开始干。
首先定义一个修改的页面。页面修改后服务器要接收到浏览器要修改的内容?然后返回到数据库中访问。
请看代码。
Jsp页面
增删改查的效果内容如下。
?增加之后修改
?修改内容如下
?删除
下篇文章进入到订单管理涉及到多表查询。
2022年5月四号博客内容SSM框架项目管理-------------超市管理系统(第七课对供应商管理的修改一条记录和删除一条记录)。
经历上面第六课博客的理解上本博客的修改访问流程如同增加一样流程不在说明。直接开始干。
首先定义一个修改的页面。页面修改后服务器要接收到浏览器要修改的内容?然后返回到数据库中访问。
请看代码。
package com.smbms.controller;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession;
public interface IProviderController {
public ModelAndView GetProviderList(HttpSession session);
public String addpr();
public String toAddProvider(String proCode, String proName, String proDesc,
String proContact, String proPhone, String proAddress, String proFax,
HttpSession session);
public String error();
public ModelAndView GetProvider(@RequestParam int index);
public String UpdateProvider(long id, String proCode, String proName, String proDesc,
String proContact, String proPhone, String proAddress, String proFax,
HttpSession session);
public String errorUpdate();
public String DeleteProvider(@RequestParam long id);
}
package com.smbms.controller;
import com.smbms.entity.Tb_User;
import com.smbms.service.IProviderService;
import com.smbms.utils.SMBMSUtil;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 供应商管理:
* 1.如果是系统管理员,不具备操作供应商的功能
* 2.如果是经理,经理有权利去添加,删除,修改和查询供应商
* 3.如果是普通员工,查询供应商详情信息
*/
@Controller
public class ProviderControllerImp implements IProviderController{
@Autowired
IProviderService pService;
//定义全局变量 将list集合调用Map的方式定义为全局变量.
List<Map<String, Object>> providers = null;
//定义方法,根据当前登录的用户的身份进行展示供应商的功能 GetProviderList.do
@RequestMapping("/GetProviderList.do")
public ModelAndView GetProviderList(HttpSession session) {
ModelAndView mav = new ModelAndView();
//从session中获得登录的用户的个人信息
Map<String, Object> userInfo = (Map<String, Object>) session.getAttribute("userInfo");
//从个人信息中找到用户的身份
int userRole = (int) userInfo.get("userRole");
providers = pService.getProviders();
System.out.println(providers);
mav.addObject("providers", providers);
if (userRole == 2) {
//经理,要查看供应商信息,而且添加,修改,删除供应商
mav.setViewName("providerList");
} else {
//普通员工,只能查看所有供应商信息
mav.setViewName("providerList2");
}
return mav;
}
/**
* 定义方法跳转页面
* 增加供应商的信息
*/
//当一点击增加数据的button时数据要到另一个页面中增加数据详细信息内容这个页面为addProvider.do"
//信息增加完成后用户将数据跳到 toAddProvider.do方法 接收七个数据信息 浏览器接收的七个数据
// params = {"proCode", "proName", "proDesc", "proContact", "proPhone", "proAddress", "proFax"})
//然后利用 Map<String, Object> map = new HashMap<>();
// Map<String, Object> map = new HashMap<>();
// toAddProvider.do
@RequestMapping("/addProvider.do")
public String addpr() {
return "addProvider";
}
/**
*
* @param proCode
* @param proName
* @param proDesc
* @param proContact
* @param proPhone
* @param proAddress
* @param proFax
* @param session
* @return
* 定义方法,用于接收新供应商的信息 定义方法用于增加供应商
*/
@RequestMapping(value = "/toAddProvider.do",
params = {"proCode", "proName", "proDesc", "proContact", "proPhone", "proAddress", "proFax"})
//接收七个数据进行存放起来
// params = {"proCode", "proName", "proDesc", "proContact", "proPhone", "proAddress", "proFax"}
//接收七个数据进行存放起来
public String toAddProvider(String proCode, String proName, String proDesc,
String proContact, String proPhone, String proAddress, String proFax,
HttpSession session) {
//Map调用List的集合方式将数据存放给的数据 方便数据 转送起来
//Map的方式封装
Map<String, Object> map = new HashMap<>();
//供应商编号
map.put("proCode", proCode);
//供应商名称
map.put("proName", proName);
//供应商业务
map.put("proDesc", proDesc);
//供应商联系人
map.put("proContact", proContact);
//供应商联系电话
map.put("proPhone", proPhone);
//供应商地址
map.put("proAddress", proAddress);
//供应商传真
map.put("proFax", proFax);
/* //获得当前登录的经理的id
map.put("createdBy", ((Tb_User) session.getAttribute("userInfo")).getId());
//获得当前添加供应商的实时时间
map.put("creationDate", SMBMSUtil.getDateTime());*/
//加入管理员的id,,,,createdBy
map.put("createdBy", ((Map<String, Object>) session.getAttribute("userInfo")).get("id"));
//creationDate添加新用户的实时时间
//利用SimpleDateFormat的类获得实时时间内容
map.put("creationDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//将数据发到业务逻辑层
int i = pService.addProvider(map);
if (i > 0)
//增加成功刷新页面
// return "redirect:GetProviderList.do"; 重定向的方式 将数据成功 跳到主页面刷新页面
return "redirect:GetProviderList.do";
else
return "redirect:errorAddProvider.do";
}
@RequestMapping(value = "/errorAddProvider.do",
produces = {"text/html;charset=UTF-8"})
@ResponseBody
public String error() {
return "添加供应商失败";
}
//定义方法,用于将要修改的供应商信息发送给修改页面UpdateProvider.do 修改数据的内容
@RequestMapping("/GetProvider.do")
public ModelAndView GetProvider(@RequestParam int index) {
//根据下标获得将要修改的供应商信息
Map<String, Object> map = providers.get(index);
//利用SpringMvc中 ModelAndView mav = new ModelAndView(); 跳转 带上数据进行跳转
ModelAndView mav = new ModelAndView();
//将数据发送上去
mav.addObject("providers", map);
//跳转的页面
mav.setViewName("updateProvider");
return mav;
}
//定义方法,接收修改页面发送的供应商信息 并刷新页面的信息与数据
// params = {"id", "proCode", "proName", "proDesc", "proContact", "proPhone", "proAddress", "proFax"})
//服务器要接收浏览器发送过来的七个数据信息
@RequestMapping(value = "/UpdateProvider.do",
params = {"id", "proCode", "proName", "proDesc", "proContact", "proPhone", "proAddress", "proFax"})
//服务器要接收浏览器传过来的8个数据
public String UpdateProvider(long id, String proCode, String proName, String proDesc,
String proContact, String proPhone, String proAddress, String proFax,
HttpSession session) {
//Map调用List的集合方式将数据存放给的数据 方便数据 转送起来
//Map的方式封装
Map<String, Object> map = new HashMap<>();
//供应商编号
map.put("id", id);
//供应商名称
map.put("proCode", proCode);
//供应商名称
map.put("proName", proName);
//供应商联系人
map.put("proDesc", proDesc);
//供应商联系人
map.put("proContact", proContact);
//供应商联系电话
map.put("proPhone", proPhone);
//供应商地址
map.put("proAddress", proAddress);
//供应商传真
map.put("proFax", proFax);//传真
//加入管理员的id,,,,表示该用户信息被管理员修改了
map.put("modifyBy", ((Map<String, Object>) session.getAttribute("userInfo")).get("id"));
//modifyDate修改用户的实时时间
map.put("modifyDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
int i = pService.update(map);
if (i > 0)
return "redirect:GetProviderList.do";
else
return "redirect:errorUpdateProvider.do";
}
@RequestMapping(value = "/errorUpdateProvider.do",
produces = {"text/html;charset=UTF-8"})
@ResponseBody
public String errorUpdate() {
return "修改供应商失败";
}
//删除
@RequestMapping("/DeleteProvider.do")
public String DeleteProvider(@RequestParam long id) {
int i = pService.delepr(id);
String url = "";
if (i > 0) {
System.out.println("供应商数据删除成功");
//修改成功
url = "redirect:GetProviderList.do";
} else
System.out.println("删除失败");
return url;
}
}
package com.smbms.service;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
public interface IProviderService {
List<Map<String, Object>> getProviders();
//添加供应商
//返回值为 int 方法为 addProvider(Map<String,Object> map)
int addProvider(Map<String, Object> map);
//修改数据
int update(Map<String, Object> map);
//删除语句
int delepr(long id);
}
package com.smbms.service;
import com.smbms.dao.IProviderDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service(value = "pService")
public class ProviderServiceImp implements IProviderService {
@Autowired
IProviderDao dao;
@Override
public List<Map<String, Object>> getProviders() {
System.out.println("查到逻辑层实现类");
return dao.getProviders();
}
@Override
public int addProvider(Map<String, Object> map) {
return dao.add(map);
}
@Override
public int update(Map<String, Object> map) {
return dao.update(map);
}
@Override
public int delepr(long id) {
return dao.delpr(id);
}
}
package com.smbms.dao;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
public interface IProviderDao {
//查询所有供应商信息 查询数据信息
//select * from smbms_provider
@Select("select * from smbms_provider")
List<Map<String, Object>> getProviders();
//添加供应商
/**
* @Insert("insert into smbms_provider(proCode,proName,proDesc,proContact," +
* "proPhone,proAddress,proFax,createdBy,creationDate)
*values
* (#{proCode},#{proName},#{proDesc},#{proContact}," +
* "#{proPhone},#{proAddress},#{proFax}," +
* "#{createdBy},#{creationDate})")
* 利用#{字段名代替}
* @param map
* @return
*/
@Insert("insert into smbms_provider(proCode,proName,proDesc,proContact," +
"proPhone,proAddress,proFax,createdBy,creationDate) values(#{proCode},#{proName}," +
"#{proDesc},#{proContact}," +
"#{proPhone},#{proAddress},#{proFax}," +
"#{createdBy},#{creationDate})")
int add(Map<String,Object> map);
/**
* @Update("update smbms_provider set proCode=#{proCode},proName=#{proName}," +
* "proDesc=#{proDesc},proContact=#{proContact},proPhone=#{proPhone}," +
* "proAddress=#{proAddress},proFax=#{proFax},modifyBy=#{modifyBy}," +
* "modifyDate=#{modifyDate} where id=#{id}")
* @param map
* @return
*/
//修改供应商@Update("")
@Update("update smbms_provider set proCode=#{proCode},proName=#{proName}," +
"proDesc=#{proDesc},proContact=#{proContact},proPhone=#{proPhone}," +
"proAddress=#{proAddress},proFax=#{proFax},modifyBy=#{modifyBy}," +
"modifyDate=#{modifyDate} where id=#{id}")
int update(Map<String,Object> map);
/**
*
* @param id
* @return
*/
//删除用户id 供应商
@Delete("delete from smbms_provider where id=#{id} ")
int delpr(@Param("id") long id);
}
Jsp页面
<%@ page import="java.util.Map" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>超市订单管理系统--修改供应商</title>
<style>
* {
font-family: 楷体;
font-size: 18px;
color: black;
font-weight: bolder;
background: linear-gradient(to right, #ffffff, #ece8e8);
/*border-radius: 20px;*/
}
input {
border-radius: 15px;
background: linear-gradient(90deg, #fa5a55, #fa9940);
border-radius: 10px;
}
</style>
</head>
<body>
<div style="width: 1200px;height: 800px;margin: auto;">
<div style="width: 100%;height: 160px;background-color:skyblue;">
<div style="width: 100%;height: 20px;">
<div align="left" style="width: 20%;height: 100%;float: left;" >
<a href="home.do" style="text-decoration: none;">返回首页</a>
</div>
<div align="right" style="width: 80%;height: 100%;float: right;">
<a>欢迎,<span style="color: red;">${userInfo.userName}</span></a>
<a href="index.do" style="text-decoration: none;">注销</a>
</div>
</div>
<div align="center" style="width: 100%;height: 140px;line-height: 140px;"><h1>超市订单管理系统</h1></div>
</div>
<%--list调用Map集合的方式--%>
<% Map<String,Object> provider=(Map<String,Object>)request.getAttribute("providers"); %>
<div align="center" style="width: 100%;height: 640px;background-color: pink;">
<form action="UpdateProvider.do" method="post">
<!-- 完成修改功能的时候,需要将主键id隐藏存储在表单页面上
因为在完成修改的sql语句的同时,是需要条件,只有主键id是不允许被修改的,
那么能作为条件去修改数据库表中的数据只有主键id
-->
<input type="hidden" name="id" value="<%=provider.get("id") %>">
<div style="padding: 5px 0px">
<label for="proCode">供应商编码:</label>
<input id="proCode" name="proCode" value="<%=provider.get("proCode") %>" type="text" placeholder="请输入供应商编码" />
</div>
<div style="padding: 5px 0px">
<label for="proName">供应商名称:</label>
<input id="proName" name="proName" value="<%=provider.get("proName") %>" type="text" placeholder="请输入供应商名称" />
</div>
<div style="padding: 5px 0px">
<label >供应商详细描述:</label><br/>
<textarea rows="5" cols="40" name="proDesc" placeholder="请输入主营产品内容"><%=provider.get("proDesc") %></textarea>
</div>
<div style="padding: 5px 0px">
<label >供应商联系人:</label>
<input type="text" name="proContact" value="<%=provider.get("proContact") %>" placeholder="请输入联系人姓名">
</div>
<div style="padding: 5px 0px">
<label >联系电话:</label>
<input type="number" name="proPhone" value="<%=provider.get("proPhone") %>" placeholder="请输入手机号" >
</div>
<div style="padding: 5px 0px">
<label >地址:</label>
<input type="text" name="proAddress" value="<%=provider.get("proAddress") %>" placeholder="请输入地址" >
</div>
<div style="padding: 5px 0px">
<label >传真:</label>
<input type="text" name="proFax" value="<%=provider.get("proFax") %>" placeholder="请输入传真号码" >
</div>
<div style="padding: 5px 0px">
<input type="submit"
value="修改供应商信息"
style="background-color: green;
border: none;padding: 5px;border-radius: 5px;
color: white;"/>
</div>
</form>
</div>
</div>
</body>
</html>
增删改查的效果内容如下。
?
?
?增加之后修改
?修改内容如下
?
?删除
?
下篇文章进入到订单管理涉及到多表查询。
|