一 导入springboot父工程
<!--引入springboot的父工程,引入就表示这是一个springboot项目了,引入该依赖后,常用的相关依赖包不用指定版本-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/>
</parent>
二 导入相关依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--引入mybatis-plus启动器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.6</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.8</version>
</dependency>
</dependencies>
三 编写resources文件下的application.yaml文件,内容如下
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
max-idle: 10
min-idle: 5
initial-size: 5
max-wait: 10000
username: root
password: root
url: jdbc:mysql://localhost:3306/mytestdb
type: com.zaxxer.hikari.HikariDataSource
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
type-aliases-package: com.dahuici.zyb.entity
mapper-locations: classpath*:mapper/*Mapper.xml
type-aliases-package:指定扫描的别名包(一般都是扫描实体类的包),会将该包下的所有类都自动注册别名,别名默认的命名规则为类名首字母小写,当在mapper.xml文件中需要该类时就可以使用别名而不用使用类全名了。
mapper-locations:指定扫描映射文件,通过classpath指的是maven项目的resources为更目录,这里是扫描resources文件下的mapper文件下的后缀为Mapper.xml的映射文件。
max-idle:连接池最大空闲数
min-idle:连接池最小空闲数
initial-size:初始化连接数
type:数据源类,这里使用com.zaxxer.hikari.HikariDataSource对象作为数据源,使用其他的数据源,在这里指定就行了。
log-impl:指定日志输出类,这里配置后可以向控制台输出执行的sql信息。
mybatis-plus:这里表示配置mybatis-plus的相关文件,如果是整合mybatis,这里就配置mybatis。
四 编写启动类
package com.dahuici.zyb;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.dahuici.zyb.Dao")
public class BaseApplication {
public static void main(String[] args) {
SpringApplication.run(BaseApplication.class, args);
}
}
@MapperScan("com.dahuici.zyb.Dao"):扫描指定包下的mapper类,因为spring会对mybatis的mapper进行管理,所以需要指定mapper类所在的包,然后类使用@Repository注解。
五 测试
1 mapper类
package com.dahuici.zyb.Dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dahuici.zyb.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDao extends BaseMapper<User> {
}
2 实体类
package com.dahuici.zyb.entity;
import lombok.Data;
@Data
public class User {
private String name;
private Integer age;
private Integer userid;
private Integer cardid;
}
3 数据库表
image.png
4 mapper配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dahuici.zyb.Dao.UserDao" >
</mapper>
5 执行测试
package com.dahuici.zyb;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dahuici.zyb.Dao.UserDao;
import com.dahuici.zyb.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@SpringBootTest
@RunWith(SpringRunner.class)
public class ApplicationTest {
@Autowired
UserDao userdao;
@Test
public void helloWorld(){
List<User> users = userdao.selectList(new QueryWrapper<User>());
System.out.println(users);
}
}
输出结果
[User(name=王麻子, age=44, userid=1, cardid=null), User(name=李四, age=29, userid=2, cardid=null), User(name=张三, age=23,
userid=6, cardid=null), User(name=zyb7, age=14, userid=7, cardid=null), User(name=zyb8, age=16, userid=8, cardid=null),
User(name=zyb9, age=18, userid=9, cardid=null), User(name=zyb10, age=20, userid=10, cardid=null), User(name=zyb11, age=22,
userid=11, cardid=null), User(name=null, age=null, userid=12, cardid=66), User(name=null, age=null, userid=13, cardid=6),
User(name=null, age=null, userid=14, cardid=66), User(name=null, age=null, userid=15, cardid=6), User(name=null, age=null,
userid=16, cardid=66), User(name=null, age=null, userid=17, cardid=6), User(name=null, age=null, userid=18, cardid=66),
User(name=null, age=null, userid=19, cardid=6), User(name=null, age=null, userid=20, cardid=66), User(name=null, age=null,
userid=21, cardid=6), User(name=null, age=null, userid=22, cardid=66), User(name=null, age=null, userid=23, cardid=6),
User(name=map测试哈哈哈, age=99, userid=24, cardid=null), User(name=map测试, age=99, userid=25, cardid=null)]
至此,springboot简单整合mybatis-plus就完成了,由于继承了BaseMapper,mybatis-plus自动封装了常用的数据库操作,对自定义sql完全没有影响,还时可以像mybatis一样给接口方法绑定sql。