caso de integración jsp + springmvc + springboot: crud

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

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_30398499/article/details/94719498
Recomendado
Clasificación