本文基于SpringBoot2.2.11整合Mybatis
1、创建一个新的SprinBoot工程,导入相应的模块
查看下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</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>2.1.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2、配置数据库连接信息
spring:
datasource:
username: xxxx
password: 'xxxx'
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
这里密码不加引号可能会出错,此时可以在测试类中注入DataSource测试数据库是否连接成功!
@SpringBootTest
class MybatisApplicationTests {
//注入数据源
@Autowired
DataSource dataSource;
@Test
void contextLoads() throws SQLException {
System.out.println(dataSource.getClass());
System.out.println(dataSource.getConnection());
}
}
数据库连接成功,可以继续下面的步骤了。
3、导入lombok,创建实体类
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
private String email;
}
数据库对应字段写个简单的就可以了,只是测试一下。
4、创建Mapper接口
@Mapper//标注这是一个映射接口
//也可以在启动类上使用@MapperScan批量扫描mapper接口
@Repository
public interface UserMapper {
List<User> queryAll();
User queryById(Integer id);
}
5、创建mapper映射文件并配置映射文件位置
<?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.chunni.mapper.UserMapper">
<select id="queryAll" resultType="com.chunni.pojo.User">
select * from t_user
</select>
<select id="queryById" parameterType="int" resultType="com.chunni.pojo.User">
select * from t_user where id = #{id}
</select>
</mapper>
mybatis:
#mapper文件位置
mapper-locations: classpath:mybatis/mapper/*.xml
#主配置文件位置
#config-location: classpath:mybatis/mybatis-config.xml
#开启驼峰命名规则
#mybatis:
# configuration:
# map-underscore-to-camel-case: true
目录结构:
注解形式
不使用mapper.xml文件,直接在mapper接口中书写sql语句
@Repository
@Mapper
public interface UserMapper {
@Select("select * from t_user")
List<User> queryAll();
@Select("select * from t_user where id = #{id}")
User queryById(Integer id);
}
6、书写controller进行测试
@RestController
public class UserController {
@Autowired
UserMapper userMapper;
@RequestMapping("/queryAll")
public List<User> queryAll(){
List<User> users = userMapper.queryAll();
return users;
}
@RequestMapping("/query/{id}")
public User queryById(@PathVariable("id")Integer id){
User user = userMapper.queryById(id);
return user;
}
}
测试成功!