一、确定需求
需求:前端访问后端URL,显示后端从数据库读取的数据
输入:前端访问URL为http://localhost:8080/hello
输出:前端显示后端从数据库读取的数据
二、新建项目的子模块
(一)新建项目multiModules
(二)新建模块mybatis
(三)新模块mybatis 添加为Maven 项目,等待Maven 解析依赖完成
(四)启动新模块项目验证是否正常
最终由于DataSouce 未配置,预期结果应为启动失败
三、MySQL数据库配置、添加数据
(一)创建数据库
推荐使用Navicat
(二)添加表和表的字段
设置完成后点击“保存”并将表名设置为“user”
(三)添加数据
四、编写代码
(一)新建controller、domain、mapper、service包
(二)新建mapper资源目录
(三)新建controller、domain、mapper、service对应的Java文件
HelloController.java
package com.example.mybatis.controller;
import com.example.mybatis.domain.User;
import com.example.mybatis.service.UserService;
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 HelloController {
@Autowired
private UserService userService;
@GetMapping("/hello")
public List<User> hello()
{
return userService.selectAllUser();
}
}
User.java
package com.example.mybatis.domain;
public class User {
public int id;
private String name;
private int age;
public String sex;
public String createTime;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
}
UserMapper.java(接口类)
package com.example.mybatis.mapper;
import com.example.mybatis.domain.User;
import java.util.List;
public interface UserMapper {
public List<User> selectAllUser();
}
UserService.java
package com.example.mybatis.service;
import com.example.mybatis.domain.User;
import com.example.mybatis.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> selectAllUser()
{
return userMapper.selectAllUser();
}
}
(四)新建mapper资源目录Java mapper对应的XML文件
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">
<mapper namespace="com.example.mybatis.mapper.UserMapper">
<resultMap id="UserResult" type="User">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="age" column="age" />
<result property="sex" column="sex" />
<result property="createTime" column="create_time" />
</resultMap>
<select id="selectAllUser" resultMap="UserResult">
select * from user
</select>
</mapper>
(五)配置数据库连接和MyBatis
1、新建application.yml
遇到问题:新建文件选项中没有.yml文件
解决问题:添加文件模板
配置application.yml文件
application.yml文件代码
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
username: root
password: xxxxxxxx
mybatis:
typeAliasesPackage: com.example.mybatis.domain
mapperLocations: classpath:mapper/*.xml
(六)添加必要的注解
在MybatisApplication.java文件中添加注解:@MapperScan("com.example.mybatis.mapper")
五、编译代码、构建程序、执行SpringBoot程序
六、测试SpringBoot后端接口,查看是否完成需求
需求:前端访问后端URL,显示后端从数据库读取的数据
输入:前端访问URL为http://localhost:8080/hello
输出:前端显示后端从数据库读取的数据