目录
项目目录
2.pom.xml
<?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.wo</groupId>
<artifactId>springboot-second</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- 链接数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- lombok 自动get/set方法-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- swagger2 的依赖/自动生成接口文档以及自测的工具-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<!--JSP核心引擎依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--JSTL-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
</project>
2.appliaction.yml
server:
port: 8088
#配置数据库
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://127.0.0.1:3306/qf?useUnicode=true&characterEncoding=utf8&useSSL=false
mvc:
view:
prefix: /WEB-INF/user/
suffix: .jsp
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.wo.pojo
3.pojo
@Data//自动生成get/set方法
@AllArgsConstructor//有参构造
@NoArgsConstructor//无参构造
public class User {
private Integer id;
private String name;
private String password;
private String birth;
private double money;
private Integer role;
4.dao
//交给spring中的ioc
@Mapper
public interface UserDao {
public List<User> findAll();
public User findById(int id);
public int update(User user);
public int delete(int id);
public int insert(User user);
}
5.service,serviceimpl
public interface UserService {
public List<User> findAll();
public User findById(int id);
public void insertOrUpdate(User user);
public int delete(int id);
}
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public User findById(int id) {
return userDao.findById(id);
}
@Override
public void insertOrUpdate(User user) {
Integer id = user.getId();
if(id!=null){
//如果Id不为空,修改
userDao.update(user);
}else{
//如果为空,添加
userDao.insert(user);
}
}
@Override
public int delete(int id) {
return userDao.delete(id);
}
}
6.controller
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/")
public ModelAndView index(){
List<User> userList = userService.findAll();
ModelAndView modelAndView=new ModelAndView();
modelAndView.setViewName("index");
modelAndView.addObject("userlist",userList);
return modelAndView;
}
@RequestMapping("/findById")
public ModelAndView findById(@RequestParam("id")int id){
User user = userService.findById(id);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("user",user);
modelAndView.setViewName("update");
return modelAndView;
}
@RequestMapping("/delete")
public String delete(@RequestParam("id")int id){
userService.delete(id);
return "redirect:/";
}
@RequestMapping("/goUpdatePage")
public String goUpdatePage(){
return "update";
}
@RequestMapping("/insertOrUpdate")
public String insertOrUpdate(User user){
userService.insertOrUpdate(user);
return "redirect:/";
}
}
7.Swagger2Config
//标注当前工程是一个配置类
@Configuration
//开启swagger的配置
@EnableSwagger2
public class Swagger2Config {
//将该Docket交给了spring中的ioc
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// swagger进行包扫描,扫描你当前的controller层路径
.apis(RequestHandlerSelectors.basePackage("com.wo.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("java-swagger")
.description("swagger接入教程,简单好用")
//服务条款网址
.version("1.0")
.build();
}
}
8.UserMapper
<?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.wo.dao.UserDao">
<select id="findAll" resultType="User">
select * from user
</select>
<select id="findById" resultType="User" parameterType="int">
select * from user where id=#{id}
</select>
<delete id="delete" parameterType="int">
delete from user where id=#{id}
</delete>
<update id="update" parameterType="User">
UPDATE user SET name=#{name},password=#{password},birth=#{birth},money=#{money},role=#{role} where id=#{id}
</update>
<insert id="insert" parameterType="User">
insert into user VALUES (null,#{name},#{password},#{birth},#{money},#{role})
</insert>
</mapper>
9.启动类
@SpringBootApplication
public class SecondSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(SecondSpringBootApplication.class);
}
}
10.swagger测试文档
输入路径+/swagger-ui.html
11.index.jsp
<!DOCTYPE html>
<html lang="en">
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<head>
<meta charset="utf-8">
<title>所有用户</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<a href="/goUpdatePage">新增</a>
<table class="table table-hover">
<caption>所有用户</caption>
<thead>
<tr>
<th>id</th>
<th>姓名</th>
<th>密码</th>
<th>生日</th>
<th>余额</th>
<th>角色</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userlist}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.password}</td>
<td>${user.birth}</td>
<td>${user.money}</td>
<td>${user.role}</td>
<td><a href="/findById?id=${user.id}">修改</a>||<a href="/delete?id=${user.id}">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
12.update.jsp
<!DOCTYPE html>
<html lang="en">
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<head>
<meta charset="utf-8">
<title>更新</title>
</head>
<body>
<div>
<form action="/insertOrUpdate" method="post">
<input name="id" type="hidden" value="${user.id}">
用户姓名:<input name="name" type="text" value="${user.name}"><br/>
用户密码:<input name="password" type="text" value="${user.password}"><br/>
用户生日:<input name="birth" type="text" value="${user.birth}"><br/>
用户余额:<input name="money" type="text" value="${user.money}"><br/>
用户角色:<input name="role" type="text" value="${user.role}"><br/>
<input type="submit" value="提交更改"><br/>
</form>
</div>
</body>