SpringBoot项目,连接MySQL数据库,使用Mybatis框架。
本篇文章作为 SpringBoot
使用 Mybatis
的入门。
MySQL驱动,使用SpringBoot版本对应的默认版本,不需要手动指定版本。
比如:SpringBoot 版本为 2.7.15
,对应的 MySQL 驱动的版本为 8.0.33
<dependency>
<groupId>com.mysqlgroupId>
<artifactId>mysql-connector-jartifactId>
<scope>runtimescope>
dependency>
MyBatis版本,使用SpringBoot版本推荐的版本(在新建项目时,会根据SpringBoot版本自动生成对应的MyBatis版本)。
比如:SpringBoot 版本为 2.7.15
,对应的 MyBatis
的版本为 2.3.1
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>2.3.1version>
dependency>
application.yml
文件中,配置数据源(MySQL数据库)。
包括:数据库url,用户名,密码,驱动
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatisplus?serverTimeZone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
mysql驱动,使用的是新版驱动 com.mysql.cj.jdbc.Driver
;使用旧版驱动,在项目启动的时候,会报错。
package com.example.web.entity;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
package com.example.web.mapper;
import com.example.web.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UserMapper {
List<User> listAll();
}
注意:这个 Mapper.xm
l 文件所在的路径
( com.example.web.mapper
),默认情况,必须和 Mapper.java
文件的路径一致,否则会报错,找不到映射文件(Mapper.xml)。
DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.web.mapper.UserMapper">
<select id="listAll" resultType="com.example.web.entity.User">
select * from user
select>
mapper>
package com.example.web.service;
import com.example.web.entity.User;
import java.util.List;
public interface UserService {
List<User> listAll();
}
package com.example.web.service.impl;
import com.example.web.entity.User;
import com.example.web.mapper.UserMapper;
import com.example.web.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> listAll() {
return userMapper.listAll();
}
}
package com.example.web.controller;
import com.example.web.entity.User;
import com.example.web.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public List<User> selectAll() {
return userService.listAll();
}
}
这里创建新项目使用的是STS(SpringToolSuite4),因为 IDEA 社区版没法创建SpringBoot项目。
MySQL的驱动版本,不需要指定。有和SpringBoot版本适配的默认版本。
MySQL驱动的maven仓库坐标发生了变化。
官方将原来的 mysql-connector-java
改为了 mysql-connector-j
。
测试时间点为:2023年9月3日
。