利用springMVC实现一个简单的增删改查
//controller
package com.gg.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import com.gg.entity.Customer;
import com.gg.service.CustomerService;
@Controller
public class CustomerController {
@Autowired
private CustomerService customerService;
@GetMapping("/showAllCustomers")
public String showAllCustomers(Model model) {
model.addAttribute("customers", customerService.showAllCustomers());
return "show";
}
@GetMapping("/removeCustomer/{cid}")
public String removeCustomerByCid(@PathVariable String cid,Model model) {
//System.out.println(cid);
System.out.println(cid);
int status=customerService.removeCustomerByCid(cid);
if(status!=1) {
model.addAttribute("msg", "删除失败!");
return "msg";
}
return "redirect:/showAllCustomers";
}
@GetMapping("/gotoReg")
public String gotoReg() {
return "res";
}
@GetMapping("/regCustomer")
public String gotoReg(Customer customer,HttpServletRequest resuqest) throws Exception {
String cname = customer.getCname();
cname = new String(cname.getBytes("iso8859-1"),"utf-8");
customer.setCname(cname);
String cgender =customer.getCgender();
cgender=new String(cgender.getBytes("ISO8859-1"),"UTF-8");
customer.setCgender(cgender);
customerService.insertCustomer(customer);
return "redirect:/showAllCustomers";
}
@GetMapping("/gotoUpdate/{cid}")
public String gotoUpdate(@PathVariable String cid,HttpSession session,Model model) {
//String cid=(String) request.getAttribute("cid");
System.out.println(cid);
Customer customer=customerService.selectCustomerByCid(cid);
model.addAttribute("customers", customer);
//session.setAttribute("customers", customer);
return "update";
}
@PutMapping("/updateCustomer")
public String updateCustomer(Customer customer,Model model) {
String cid=customer.getCid();
int status=customerService.updateCustomer(customer);
if(status!=1) {
model.addAttribute("mag", "update err");
return "msg";
}
return "redirect:/showAllCustomers";
}
}
///entity
package com.gg.entity;
public class Customer {
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column customer.cid
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
private String cid;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column customer.cname
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
private String cname;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column customer.cage
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
private Integer cage;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column customer.cgender
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
private String cgender;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column customer.cid
*
* @return the value of customer.cid
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
public String getCid() {
return cid;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column customer.cid
*
* @param cid the value for customer.cid
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
public void setCid(String cid) {
this.cid = cid == null ? null : cid.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column customer.cname
*
* @return the value of customer.cname
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
public String getCname() {
return cname;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column customer.cname
*
* @param cname the value for customer.cname
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
public void setCname(String cname) {
this.cname = cname == null ? null : cname.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column customer.cage
*
* @return the value of customer.cage
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
public Integer getCage() {
return cage;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column customer.cage
*
* @param cage the value for customer.cage
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
public void setCage(Integer cage) {
this.cage = cage;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column customer.cgender
*
* @return the value of customer.cgender
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
public String getCgender() {
return cgender;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column customer.cgender
*
* @param cgender the value for customer.cgender
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
public void setCgender(String cgender) {
this.cgender = cgender == null ? null : cgender.trim();
}
}
package com.gg.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gg.entity.Customer;
import com.gg.mapper.CustomerMapper;
@Service
public class CustomerService {
@Autowired
private CustomerMapper customerMapper;
public List<Customer> showAllCustomers() {
return customerMapper.selectAll();
}
public int removeCustomerByCid(String cid) {
return customerMapper.deleteByPrimaryKey(cid);
}
public int insertCustomer(Customer customer){
return customerMapper.insert(customer);
}
public Customer selectCustomerByCid(String cid) {
// TODO Auto-generated method stub
return customerMapper.selectByPrimaryKey(cid);
}
public int updateCustomer(Customer customer) {
return customerMapper.updateByPrimaryKey(customer);
}
}
package com.gg.mapper;
import com.gg.entity.Customer;
import java.util.List;
public interface CustomerMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table customer
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
int deleteByPrimaryKey(String cid);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table customer
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
int insert(Customer customer);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table customer
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
Customer selectByPrimaryKey(String cid);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table customer
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
List<Customer> selectAll();
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table customer
*
* @mbggenerated Thu Mar 25 18:55:40 GMT+08:00 2021
*/
int updateByPrimaryKey(Customer customer);
}
~~~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.gg.mapper.CustomerMapper" >
<resultMap id="BaseResultMap" type="com.gg.entity.Customer" >
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Thu Mar 25 18:55:40 GMT+08:00 2021.
-->
<id column="cid" property="cid" jdbcType="VARCHAR" />
<result column="cname" property="cname" jdbcType="VARCHAR" />
<result column="cage" property="cage" jdbcType="INTEGER" />
<result column="cgender" property="cgender" jdbcType="VARCHAR" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Thu Mar 25 18:55:40 GMT+08:00 2021.
-->
delete from customer
where cid = #{cid,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.gg.entity.Customer" >
<selectKey keyProperty="cid" order="BEFORE" resultType="string">
select replace(uuid(),"-","") from dual
</selectKey>
insert into customer (cid,cname,cage,cgender)
values (#{cid,jdbcType=VARCHAR}, #{cname,jdbcType=VARCHAR}, #{cage,jdbcType=INTEGER}, #{cgender,jdbcType=VARCHAR})
</insert>
<update id="updateByPrimaryKey" parameterType="com.gg.entity.Customer" >
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Thu Mar 25 18:55:40 GMT+08:00 2021.
-->
update customer
set cname = #{cname,jdbcType=VARCHAR},
cage = #{cage,jdbcType=INTEGER},
cgender = #{cgender,jdbcType=VARCHAR}
where cid = #{cid,jdbcType=VARCHAR}
</update>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Thu Mar 25 18:55:40 GMT+08:00 2021.
-->
select cid, cname, cage, cgender
from customer
where cid = #{cid,jdbcType=VARCHAR}
</select>
<select id="selectAll" resultMap="BaseResultMap" >
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Thu Mar 25 18:55:40 GMT+08:00 2021.
-->
select cid, cname, cage, cgender
from customer
</select>
</mapper>
///index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="showAllCustomers">显示全部顾客</a>
<a href="gotoReg">添加顾客</a>
</body>
</html>
///更新
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'res.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="/homework2/updateCustomer" method="post">
<input type="hidden" name="_method" value="put"/>
<input type="hidden" name="cid" value="${customers.cid }"/>
姓名:<input type="text" name="cname" value="${customers.cname}"/><br/><br/>
年龄:<input type="text" name="cage" value="${customers.cage }"/><br/><br/>
性别
男: <input type="radio" name="cgender" value="男" <c:if test="${customers.cgender eq '男' }">checked="checked"</c:if>/>
女: <input type="radio" name="cgender" value="女" <c:if test="${customers.cgender eq '女' }">checked="checked"</c:if>/> <br/><br/>
<input type="submit"/>
</form>
</body>
</html>
///显示
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'show.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<table border="1" width="550" height="150">
<tr>
<td>编 号</td>
<td>姓 名</td>
<td>年龄</td>
<td>性别</td>
<td>修改</td>
<td>删除</td>
</tr>
<c:forEach items="${customers}" var="customer">
<tr>
<td>${customer.cid }</td>
<td>${customer.cname }</td>
<td>${customer.cage }</td>
<td>${customer.cgender }</td>
<td><a href="gotoUpdate/${customer.cid}">修改</a></td>
<td><a href="removeCustomer/${customer.cid}">删除</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'res.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="regCustomer" method="get">
姓名:<input type="text" name="cname"/><br/><br/>
年龄:<input type="text" name="cage"/><br/><br/>
性别
男: <input type="radio" name="cgender" value="男"/>
女: <input type="radio" name="cgender" value="女"/> <br/><br/>
<input type="submit"/>
</form>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'msg.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
${msg}
</body>
</html>