SpringBoot整合篇 01、Springboot整合Mybatis
【摘要】 文章目录前言一、快速使用1.1、导入坐标mybatis启动器1.2、创建一个实体类(方便后面使用)1.3、application.yml配置数据源等1.4、DAO与Mapper配置参考文章
前言
本篇博客是SpringBoot整合Mybatis,若文章中出现相关问题,请指出!
所有博客文件目录索引:博客目录索引(持续更新)
一、快速使用
1.1、导入坐标mybatis启动器
第一个是mybatis
@[toc]
前言
本篇博客是SpringBoot整合Mybatis,若文章中出现相关问题,请指出!
所有博客文件目录索引:博客目录索引(持续更新)
一、快速使用
1.1、导入坐标mybatis启动器
第一个是mybatis的springboot启动器,第二个是lombok插件主要用来简化pojo方法
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!-- lombok插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>compile</scope>
</dependency>
1.2、创建一个实体类(方便后面使用)
@Data
public class User {
private BigInteger id;
private BigInteger roleId;
private String username;
private String password;
private String salt;
private String email;
private String phoneNum;
private BigDecimal accountMoney;
}
1.3、application.yml配置数据源等
数据源不陌生吧,分别为用户名、jdbc连接mysql数据源地址、密码、驱动类。
下面的是对应的实体类包路径设置以及对应的mapper映射位置。
# 配置mybatis数据源
spring:
datasource:
username: root
url: jdbc:mysql://localhost:3306/dj.smartparking.rdb?setTimezone=UTC&useUnicode=true&characterEncoding=utf-8
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
# 整合mybatis,实体类包配置和mapper映射地址
mybatis:
type-aliases-package: com.changlu.pojo
mapper-locations: classpath:mybatis/mapper/*.xml
- mapper-locations对应路径为resources目录下。
1.4、DAO与Mapper配置
①在springboot
启动类上使用注解@MapperScan
,后面跟上对应的mapper包路径,表示自动扫描该包下的dao
@MapperScan("com.jssvc.smartparking.mapper") //扫描mapper包下的dao接口
@SpringBootApplication
public class SmartparkingWebApplication {
public static void main(String[] args) {
SpringApplication.run(SmartparkingWebApplication.class, args);
}
}
- 使用
@Repository
在dao上,需要在启动类上添加@MapperScan
,如上。
②接着到该mapper目录中创建dao即可。
@Repository //创建bean实例并交由spring管理
public interface UserMapper {
User getUser(String username);
}
③对应mapper配置内容如下
主要是数据库字段名与pojo实体类中的字段名不相同,所以使用了resultMap
来进行别名设置
<?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.jssvc.smartparking.mapper.UserMapper">
<!-- 定义一个结果集,保证pojo中的字段与数据库相符 -->
<resultMap id="userResultMap" type="com.jssvc.smartparking.pojo.User">
<!-- 用id属性来映射主键字段 -->
<id property="id" column="id"/>
<result property="roleId" column="role_id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="salt" column="salt"/>
<result property="email" column="email"/>
<result property="phoneNum" column="phonenum"/>
<result property="accountMoney" column="accountmoney"/>
</resultMap>
<!-- 根据username获取User对象 -->
<select id="getUser" resultMap="userResultMap" parameterType="String">
select * from user where username = #{username}
</select>
</mapper>
到了这步dao与mapper映射文件都配置完毕了,如何在service类中使用呢?通过使用一个@Autowired来进行自动注入
参考文章
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)