Spring Boot+Mybatis+thymeleaf整合

目录

一、数据库表准备

二、创建项目

三、添加pom.xml

四、配置application.yml

五、编写代码

六、启动测试


一、数据库表准备

创建一个"shiro_demo"数据库,并在其中创建一张user表。我们接下来将整合项目并取出数据库user表中所有数据。


DROP TABLE IF EXISTS `user_tb`;
CREATE TABLE `user_tb` (
  `userid` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `department` varchar(255) DEFAULT NULL,
  `classroom` int(11) DEFAULT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;


INSERT INTO `user_tb` VALUES ('1', '周杰伦', '音乐系', '5');
INSERT INTO `user_tb` VALUES ('2', '张无忌', '武当派', '1');
INSERT INTO `user_tb` VALUES ('3', '赵敏', '蒙古族', '3');

二、创建项目

1、创建项目
2、最终项目结构

三、添加pom.xml

里面引入了本次整合所需要的所有依赖包,包括Mybatis、thymeleaf、lombok。

<?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>org.example</groupId>
    <artifactId>ShiroDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <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>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
        </dependency>

    </dependencies>

</project>

四、配置application.yml

也就是application.properties,只是格式不同而已,个人觉得yml格式更直观清晰。

spring:
  # mysql 数据源
  datasource:
    url: jdbc:mysql://localhost/shiro_demo?useUnicode=true&characterEncoding=UTF-8
    username: root
    password: root
    driverClassName: com.mysql.jdbc.Driver
mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.zyy.model

五、编写代码

user.java

因为使用了@Data注解,所以可以省略get、set、toString···

package com.zyy.model;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @ClassName User
 * @Author DoNg
 * @Date 2020/8/12 0012 10:58
 * @Description User
 */
@Data
public class User{
    private Integer userid;

    private String username;

    private String department;

    private Integer classroom;
}

UserMapper.xml  (在resourses目录下新建mapper文件夹,用于存放xxxMapper.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.zyy.mapper.UserMapper">

    <select id="selectAllUser" resultType="com.zyy.model.User">
        select * from user_tb
    </select>

</mapper>

UserMapper.java

package com.zyy.mapper;

import com.zyy.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @ClassName UserMapper
 * @Author DoNg
 * @Date 2020/8/12 0012 11:19
 * @Description UserMapper
 */
@Mapper
@Repository
public interface UserMapper {

    List<User> selectAllUser();

}

UserService.java

package com.zyy.service;

import com.zyy.model.User;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @ClassName UserService
 * @Author DoNg
 * @Date 2020/8/12 0012 11:51
 * @Description UserService
 */
public interface UserService {

    List<User> getAllUser();

}

UserServiceImpl.java

package com.zyy.service.impl;

import com.zyy.mapper.UserMapper;
import com.zyy.model.User;
import com.zyy.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @ClassName UserServiceImpl
 * @Author DoNg
 * @Date 2020/8/12 0012 11:52
 * @Description UserServiceImpl
 */
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> getAllUser(){
        return this.userMapper.selectAllUser();
    }

}

UserController.java

package com.zyy.controller;

import com.zyy.model.User;
import com.zyy.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;


/**
 * @ClassName UserController
 * @Author DoNg
 * @Date 2020/8/12 0012 11:33
 * @Description UserController
 */
@Controller
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/all")
    public String all(ModelMap model) {
        // 查询用户
        List<User> users = this.userService.getAllUser();
        for (User user : users) {
            System.out.println(user.toString());
        }
        // 放入模型
        model.addAttribute("users", users);
        // 返回模板名称(就是classpath:/templates/目录下的html文件名)
        return "users";
    }

}

UserApplication.java(启动类)

package com.zyy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @ClassName UserApplication
 * @Author DoNg
 * @Date 2020/8/12 0012 14:25
 * @Description UserApplication
 */
@SpringBootApplication
public class UserApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class);
    }
}

在resourses目录下新建templates文件夹,用于存放html页面。

新建users.html,注意引入<html xmlns:th="http://www.thymeleaf.org">

users.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <style type="text/css">
        table {border-collapse: collapse; font-size: 14px; width: 80%; margin: auto}
        table, th, td {border: 1px solid darkslategray;padding: 10px}
    </style>
</head>
<body>
<div style="text-align: center">
    <span style="color: darkslategray; font-size: 30px">用户列表!</span>
    <hr/>
    <table class="list">
        <tr>
            <th>id</th>
            <th>姓名</th>
            <th>部门</th>
            <th>班级</th>
        </tr>
        <tr th:each="user : ${users}">
            <td th:text="${user.userid}"></td>
            <td th:text="${user.username}"></td>
            <td th:text="${user.department}"></td>
            <td th:text="${user.classroom}"></td>
        </tr>
    </table>
</div>
</body>
</html>

六、启动测试

运行启动类,浏览器中输入http://localhost:8080/user/all,得到如图结果,至此整合完毕!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大何向东流1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值