spring boot 与mybatis-plus集成
一、简介
本文基于开发者已经有Mybatis的基础
Mybatis-plus与Mybatis
相同点:
- 持久层框架,对Jdbc进行了封装;
- 都是半自动化框架,支持用户原生sql的编写
不同点:
- Mybatis是官方发布,mybatis-plus是第三方基于mybatis开发框架
- Mybatis-plus的集成度更高,第三方为其提供了自动配置包,而mybatis需要自己手动配置
- mybaits-plus提供了crud方法,不需要用户编写sql,可以直接调用使用,而且mybatis-plus还支持mapper.xml的接口绑定,让用户自定义sql语句,相比hibernate更加灵活
二、开发配置(基于spring boot开发)
(maven项目可根据原理自行修改配置)
1、依赖导入
<!-- 数据库依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- mybatis-plus依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!-- druid 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
2、启动类配置
@SpringBootApplication
@EnableDiscoveryClient
@EnableRedisHttpSession
@MapperScan("com.gulimail.member.Dao") //mapper接口扫描开启
public class MemberApplication {
public static void main(String[] args) {
SpringApplication.run(MemberApplication.class, args);
}
}
//其他注解是使用了nacos与spring session服务,如果不使用可不配置
3、Mapper接口
@Repository
public interface UserDao extends BaseMapper<User> {
User getUserById(String id);
}
//要继承BaseMapper接口
4、Mapper.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.taobao.member.Dao.UserDao">
<select id="getUserById" resultType="com.taobao.common.entity.User">
select * from `t_user` where id = #{id}
</select>
</mapper>
<!-- namespace:绑定指定的接口 -->
<!-- mapper.xml的编写与mybatis都是相同的 -->
5、配置类
spring:
application:
name: taobao-member
# cloud:
# nacos:
# discovery:
# server-addr: http://192.168.244.10:8848
datasource:
password: 123456
username: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.244.10:3306/taobao
type: com.alibaba.druid.pool.DruidDataSource
thymeleaf:
cache: false
# redis:
# host: 192.168.244.10
# port: 6379
# session:
# store-type: redis
mybatis-plus:
mapper-locations: classpath:/Mapper/*.xml #重点
# mybatis-plus不需要用户自己编写配置,因为第三方在开发mybatis-plus是为我们提供了与spring boot基
# 础的自动配置类,但需要指定xml的xml文件的路径
三、开发
1、自带方法的使用
mybatis-plus提供了许多CRUD方法
其中queryWrapper对象是用于构造查询的条件
User user = userDao.selectOne(new QueryWrapper<User>().eq("user_name", authUser.getUserName()).eq("pass_word", authUser.getPassWord()));
如上是查询将用户名
与密码
都等于特定值的条件的user
2、自定义查询
1、在接口中添加方法
2、在mapper.xml编写sql
就可同样使用userDao
接口调用。