Listo para trabajar
数据库:MySQL
框架:mybatis、springmvc、spring boot
CREATE DATABASE /*!32312 IF NOT EXISTS*/`blog` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `blog`;
/*Table structure for table `user` */
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(200) DEFAULT NULL,
`age` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
/*Data for the table `user` */
insert into `user`(`id`,`username`,`age`) values (1,'zhangsan','12'),(15,'wangwu','11'),(19,'admin','123');
Crea un proyecto de arranque de primavera
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190705101744743.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwMzk4NDk5,size_16,color_FFFFFF,t_70
)
**
dependencia de importación pom.xml
**
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version>
</properties>
<dependencies>
<!-- fastJson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.5.18.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!--<version>1.18.4</version>-->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- AOP -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Springboot 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--spring boot 集成Mybatis核心依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- druid阿里的数据库连接池,目前最好的java数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.26</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!-- 配置java版本 不配置的话默认父类配置的是1.6-->
<pluginManagement>
<plugins>
<!-- 由于历史原因 maven-compiler只支持编译Java 1.3 所以要自己手动配置其支持1.5 不然跑test的时候不能使用@Test 注解!! -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>${java.version}</target>
</configuration>
</plugin>
<!-- jdbc 依赖 -->
</plugins>
</pluginManagement>
</build>
colocación application.yml
server:
port: 9999
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/blog?characterEncoding=UTF8
username: root
password: 123456
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
static-path-pattern: /static/**
resources:
static-locations: /META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/static/
thymeleaf:
prefix: /templates/
suffix: .html
mode: HTML5
encoding: UTF-8
cache: false
Prepara la pagina
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<table id="dg">
<tr>
<td>
<a href="${pageContext.request.contextPath}/user" target="_blank">添加</a>
</td>
</tr>
<tr>
<td>
<input type="checkbox"/>
</td>
<td>id</td>
<td>姓名</td>
<td>年龄</td>
<td>操作</td>
</tr>
<c:forEach items="${list}" var="user">
<tr>
<td>
<input type="checkbox" id="user" name="user"/>
</td>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.age}</td>
<td>
<a href="${pageContext.request.contextPath}/delete?id=${user.id}" target="_self">删除</a>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: baidu
Date: 2019/7/4
Time: 15:12
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加用户</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/add" method="post">
<table>
<tr>
<td>用户名</td>
<td>
<input type="text" name="username" value="${user.username}">
</td>
</tr>
<tr>
<td>年龄</td>
<td>
<input type="text" name="age" value="${user.age}">
</td>
</tr>
<tr>
<td>
<input type="submit" value="提交">
</td>
</tr>
</table>
</form>
</body>
</html>
Escribe pojo, dao, servicio, controlador
@Mapper
public interface UserDao {
@Select("select * from user")
public List<User> find();
@Insert("insert into user(username,age) values(#{username},#{age})")
public void add(User user);
@Delete("delete from user where id=#{id}")
public void delete(String id);
}
@Service
public class UserService {
@Autowired
private UserDao userDao;
public List<User> find(){
return userDao.find();
}
public void add(User user) {
userDao.add(user);
}
public void delete(String id){
userDao.delete(id);
}
}
@Controller
public class UserController {
@Autowired
private UserService userService;
/**
* 返回列表页面视图
* @return
*/
@RequestMapping("/index")
public ModelAndView user(){
List<User> list = userService.find();
System.out.println(list);
// 构建视图
ModelAndView mv = new ModelAndView();
// 定义模型视图
mv.setViewName("index");
// 加入数据模型
mv.addObject("list",list);
// 返回模型和视图
return mv;
}
/**
* 返回用户添加页面视图
* @return
*/
@RequestMapping(value = "/user",method = RequestMethod.GET)
public String userAdd() {
return "add";
}
/**
* 执行添加操作
* @param user
* @return
*/
@RequestMapping(value = "/add",method = RequestMethod.POST)
public ModelAndView add(User user) {
userService.add(user);
// 构建视图
ModelAndView mv = new ModelAndView();
// 返回模型和视图
return mv;
}
/**
* 删除操作
* @param id
*/
@RequestMapping(value = "/delete",method = RequestMethod.GET)
public void delete(String id){
userService.delete(id);
}
}
@Data
public class User {
private int id;
private String username;
private String age;
}
@Getter
@Setter
@NoArgsConstructor
public class Result {
private boolean flag;
private String message;
private Object data;
public Result(boolean flag, String message, Object data) {
this.flag = flag;
this.message = message;
this.data = data;
}
}
Página de prueba