SpringBoot整合Mybatis+SpringMVC 项目
环境搭建
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>01_CRUD_jsp</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.1.13.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<!--jstl-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>8.5.59</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<!--pagehelper分页插件的使用-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
yml文件配置
server:
port: 80
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
mybatis:
mapper-locations: classpath:mybatis/*.xml
type-aliases-package: com.test.pojo
分页显示数据
mapper
List<User> selectAll();
mapper.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.test.mapper.UserMapper">
<resultMap id="userMapper" type="com.test.pojo.User">
<id property="id" column="uid"></id>
<result property="name" column="uname"></result>
<result property="pwd" column="pwd"></result>
</resultMap>
<select id="selectAll" resultMap="userMapper">
select * from user
</select>
</mapper>
service
PageInfo<User> page(int index , int size);
@Autowired
private UserMapper userMapper;
@Override
public PageInfo<User> page(int index, int size) {
PageHelper.startPage(index,size);
List<User> users = userMapper.selectAll();
return new PageInfo<>(users);
}
controller
@Autowired
private UserService userService;
@RequestMapping("/")
public String index(@RequestParam(defaultValue = "1") int index , @RequestParam(defaultValue = "2") int size , Model model){
PageInfo<User> page = userService.page(index, size);
Map<String,Object> map = new HashMap<>();
map.put("list",page.getList());
map.put("lastPage",page.getPages());
map.put("index",index);
map.put("size",size);
model.addAllAttributes(map);
return "index.jsp";
}
jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<base href="<%=request.getContextPath()+'/'%>">
<style>
table{
margin: auto;
}
table th{
width: 90px;
border: solid 1px;
}
table td{
width: 90px;
width: 30px;
border: solid 1px;
}
</style>
</head>
<body>
<h1 align="center">用户信息管理</h1>
<hr>
<div>
<table cellspacing="1px" cellpadding="1px" >
<tr>
<th>id</th>
<th>姓名</th>
<th>密码</th>
<th>操作</th>
</tr>
<c:forEach items="${requestScope.list}" var="l">
<tr>
<td>${l.id}</td>
<td>${l.name}</td>
<td>${l.pwd}</td>
<td>
<a href="javascript:void(0)" onclick="del(${l.id})">删除</a>
<a href="javascript:void(0)" onclick="findoOne(${l.id})">修改</a>
</td>
</tr>
</c:forEach>
<tr >
<td colspan="4" align="center">
<c:if test="${requestScope.index!=1}">
<a href="/?index=1">首页</a>
</c:if>
<c:if test="${requestScope.index>1}">
<a href="/?index=${requestScope.index-1}">上一页</a>
</c:if>
<c:if test="${requestScope.index<requestScope.lastPage}">
<a href="/?index=${requestScope.index+1}">下一页</a>
</c:if>
<c:if test="${requestScope.index!=requestScope.lastPage}">
<a href="/?index=${requestScope.lastPage}">尾页</a>
</c:if>
</td>
</tr>
</table>
</div>
<div style="text-align: center; margin-top: 40px" ><a href="/insert"> 添加数据</a></div>
</body>
<script type="text/javascript">
function del( id ) {
var flag = confirm("是否删除?")
if(flag){
location.href="del?id="+id;
}
}
function findoOne(id){
location.href="findOne?id="+id;
}
</script>
</html>
添加数据
mapper
@Insert("insert into user values(default,#{name},#{pwd},null)")
int add(User user);
service
boolean update(User user);
@Override
public boolean add(User user) {
System.out.println(user);
return userMapper.add(user)>0?true:false;
}
controller
@RequestMapping("/insert")
public String insert(){
return "add.jsp";
}
@RequestMapping("/add")
public String add(User user,Model model){
boolean flag = userService.add(user);
if (flag){
return "/";
}else {
model.addAttribute("msg","添加失败");
return "add.jsp";
}
}
jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<base href="<%=request.getContextPath()+'/'%>">
</head>
<body>
<h1 align="center">修改数据</h1>
<hr>
<div style="width: 100%; text-align: center">
<form action="/add" method="post" >
<p>姓名: <input type="text" name="name" id="name" ></p>
<p>密码: <input type="text" name="pwd" id="pwd" ></p>
<p><input type="submit" value="提交" > <input type="reset" value="重置" ></p>
</form>
<span>${msg}</span>
<a href="/">返回主页面</a>
</div>
</body>
</html>
修改数据
service
User findOne(int id);
boolean update(User user);
@Override
public User findOne(int id) {
return userMapper.selectOne(id);
}
@Override
public boolean update(User user) {
System.out.println(user);
return userMapper.update(user)>0?true:false;
}
controller
@RequestMapping("/findOne")
public String findOne(int id ,Map<String,Object> map){
User user = userService.findOne(id);
map.put("user",user);
return "update.jsp";
}
@RequestMapping("/update")
public String update(User user ,@RequestParam(defaultValue = "1") int index , @RequestParam(defaultValue = "2") int size,Map<String,Object> map){
boolean flag = userService.update(user);
if (flag){
map.put("msg","更新成功");
}else {
map.put("msg","更新失败");
return "update.jsp";
}
PageInfo<User> page = userService.page(index, size);
map.put("list",page.getList());
map.put("lastPage",page.getPages());
map.put("index",index);
map.put("size",size);
return "index.jsp";
}
jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<base href="<%=request.getContextPath()+'/'%>">
</head>
<body>
<h1 align="center">修改数据</h1>
<hr>
<div style="width:100%;text-align:center">
<form action="/update" method="post">
<p>
<input type="text" id="id" name="id" readonly="readonly" hidden value="${requestScope.user.id}">
</p>
<p>
姓名: <input type="text" name="name" id="name" value="${requestScope.user.name}">
</p>
<p>
密码: <input type="text" name="pwd" id="pwd" value="${requestScope.user.pwd}">
</p>
<p>
<input type="submit" value="提交"> <input type="reset" value="重置">
</p>
</form>
<span>${msg}</span>
<a href="/">返回主页面</a>
</div>
</body>
</html>
删除数据
mapper
@Delete("delete from user where uid =#{arg0}")
int del(int id);
service
boolean del(int id);
@Override
public boolean del(int id) {
return userMapper.del(id)>0?true:false;
}
controller
@RequestMapping("/del")
public String del(int id, @RequestParam(defaultValue = "1") int index , @RequestParam(defaultValue = "2") int size, Map<String,Object> map){
boolean flag = userService.del(id);
if (flag){
map.put("msg","删除成功");
}else {
map.put("msg","删除失败");
}
PageInfo<User> page = userService.page(index, size);
map.put("list",page.getList());
map.put("lastPage",page.getPages());
map.put("index",index);
map.put("size",size);
return "index.jsp";
}
id, @RequestParam(defaultValue = “1”) int index , @RequestParam(defaultValue = “2”) int size, Map<String,Object> map){
boolean flag = userService.del(id);
if (flag){
map.put("msg","删除成功");
}else {
map.put("msg","删除失败");
}
PageInfo<User> page = userService.page(index, size);
map.put("list",page.getList());
map.put("lastPage",page.getPages());
map.put("index",index);
map.put("size",size);
return "index.jsp";
}