Contents

Spring Boot、Spring-MVC、MyBatis 环境构建简单流程记录

Spring Boot、Spring-MVC、MyBatis 环境构建简单流程记录

1. pom.xml 中添加以下依赖(如果没有)

<dependencies>
    <!-- 连接池 -->
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid-spring-boot-starter</artifactId>
		<version>1.1.9</version>
	</dependency>
    <!-- MyBatis依赖 -->
	<dependency>
		<groupId>org.mybatis.spring.boot</groupId>
		<artifactId>mybatis-spring-boot-starter</artifactId>
		<version>2.0.1</version>
	</dependency>
    <!-- 添加SpringMVC支持-->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
    <!-- 添加MySQL驱动-->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<scope>runtime</scope>
	</dependency>
    <!-- Lombok依赖 -->
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<optional>true</optional>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

2. 在application.properties中配置Mybatis需要的信息。

# 端口号
server.port=8080
# mapper xml 文件地址
mybatis.mapper-locations=classpath*:mapper/*Mapper.xml
# 数据库url
# 注意:添加MySQL驱动,这里如果不指定版本默认是8.0的版本,当然你也可以指定版本,8.0的版本这里有一问比较坑的问题:
# MySQL数据库默认使用的是美国的时区,而我们连接的时候用的是中国的北京时间,然后比美国快,所以当我们在连接数据库的时候要设置一下时区为东八区ServerTimezone=UTC
spring.datasource.url=jdbc:mysql://localhost:3306/[DB_Name]?characterEncoding=utf8&serverTimezone=UTC
# 数据库用户名
spring.datasource.username=[username]
# 数据库密码
spring.datasource.password=[pwd]
# 数据库驱动(MySQL8.x的版本)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# MySQL5.x的版本使用的驱动类是:com.mysql.jdbc.Driver
# druid连接池监控
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=xxx
# mybatis日志(执行结果显示SQL语句)
logging.level.com.wgymt.layui.mapper=debug

3. 创建实体类(此处以User类为例)

package com.example.demo.entity;

import lombok.Data;

@Data
public class User {
    private Integer id;
    private String username;
    private Integer age;
}

4. 创建UserMapper接口和对应的UserMapper.xml文件

package com.example.demo.mapper;

import com.example.demo.entity.User;

import java.util.List;

public interface UserMapper {
    // 定义一个查询数据库的方法
    List<User> selectUserList();
}
  • resource包下创建依次创建com/example/demo/mapper/UserMapper.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">

<!-- namespace的路径必须正确 -->
<mapper namespace="com.example.demo.mapper.UserMapper">
    <select id="selectUserList" resultType="com.example.demo.entity.User">
        select * from t_user;
    </select>
</mapper>

这里要注意的是接口名称要和映射文件的名称一致

5. 还需要在启动类中添加@MapperScan来扫描mapper包

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(basePackages = {"com.example.demo.mapper"})
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

6. 最后测试一下

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class DemoController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/hello")
    public List<User> hello() {
        List<User> users = userMapper.selectUserList();
        return users;
    }
}

然后在浏览器地址栏输入http://localhost:8081/hello,就可以看到浏览器已经查询出来数据