Springboot 集成 Mybatis

「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战」。

首先添加 MybatisMysql 依赖

1
2
3
4
5
6
7
8
9
xml复制代码<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

创建 dao 层文件

1
2
3
4
5
6
java复制代码@Mapper
@Repository
public interface LearnMapper {
Long insert(Learn learn);
List<Learn> queryList(Learn learn);
}

然后在 resources/mapper/ 下创建 xml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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="top.younote.learn.Mapper.LearnMapper">
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
insert into
learn_mybatis (user_name,nick_name,age)
values (#{userName},#{nickName},#{age})
</insert>
<select id="queryList" parameterType="top.younote.learn.pojo.Learn" resultType="top.younote.learn.pojo.Learn">
select
id,
user_name,
nick_name,
age
from
learn_mybatis
where
user_name = #{userName}
</select>
</mapper>

application.yml 下新增

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
yml复制代码server:
port: 8089
spring:
#数据库连接配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8&useSSL=false
username: root
password: dly3230

#mybatis的相关配置
mybatis:
#mapper配置文件
mapper-locations: classpath:mapper/*.xml
type-aliases-package: top.younote.learn.pojo
#开启驼峰命名
configuration:
map-underscore-to-camel-case: true
# mybatis 显示 sql 语句,便于调试,top.younote.learn.Mapper 是 dao 层包名,修改成自己的路径
logging:
level:
top.younote.learn.Mapper: debug

Mybatis 插入数据返回插入的那条数据的 id

只需要增加 useGeneratedKeyskeyProperty 属性即可,其中 keyProperty 对应自增序列对应的字段,这里是 id
这个操作实际上是把插入到数据库的 id 属性赋值到入参里面的,所以这个需要从入参里面获取,而不是 insert 返回值(插入成功结果始终是 1 ),这里是通过 learn.getId() 获取 id

1
2
3
4
5
xml复制代码<insert id="insert" useGeneratedKeys="true" keyProperty="id">
insert into
learn_mybatis (user_name,nick_name,age)
values (#{userName},#{nickName},#{age})
</insert>

日志打印 Sql 语句

1
2
3
yml复制代码logging:
level:
top.younote.learn.Mapper: debug

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%