一、前言
mybatis plus 官网
MyBatis-PlusMyBatis-Plus 官方文档 https://baomidou.com/
1.新建项目,结构如下图
2.加入pom依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version> </parent> <groupId>org.example</groupId> <artifactId>spring-boot-mybatis-plus</artifactId> <version>1.0-SNAPSHOT</version> <name>spring-boot-mybatis-plus</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <druid.version>1.2.8</druid.version> <mysql.version>8.0.26</mysql.version> <mybatisplus.version>3.4.3.4</mybatisplus.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatisplus.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-annotation</artifactId> <version>${mybatisplus.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>${mybatisplus.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.70</version> </dependency> </dependencies> </project>
3.各个类代码
MybatisPlusConfig
@Configuration @Slf4j @EnableTransactionManagement @MapperScan(basePackages = "org.example.dao") public class MybatisPlusConfig { @Resource private DataSource dataSource; /** * 最新版分页插件配置 * * @author huangyi * @date 2021/12/22 10:31 */ @Bean public MybatisPlusInterceptor paginationInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }
Usermapper
@Mapper public interface UserMapper extends BaseMapper<UserModel> { List<UserModel> customQuery(); }
UserModel
@TableName("t_user") @Data @Setter @Getter public class UserModel implements Serializable { @TableId(type = IdType.AUTO) private Long id; @TableField private String username; }
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="org.example.dao.UserMapper"> <select id="customQuery" resultType="org.example.model.UserModel"> select * from t_user <where> id=1 </where> </select> </mapper>
App
/** * Hello world! */ @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
Application.yml
server: port: 8080 servlet: context-path: / spring: datasource:
url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username:用户名 password: 密码 driver-class-name: com.mysql.cj.jdbc.Driver # hikari 数据库连接池配置 hikari: #最小空闲连接 minimum-idle: 5 #空闲连接存活最大时间 默认10分钟 idle-timeout: 180000 #最大连接数 maximum-pool-size: 20 #连接池自动提交 auto-commit: true #连接池名字 pool-name: hikariPool #最长生命周期 max-lifetime: 1800000 #连接超时时间 connection-timeout: 30000 connection-test-query: select 1 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: logic-delete-value: 1 logic-not-delete-value: 0 #自定义mapper文件 mapper-locations: classpath*:/mapper/**/*Mapper.xml
测试
/** * Unit test for simple App. */ @RunWith(SpringRunner.class) @SpringBootTest(classes = App.class) public class AppTest { /** * Rigorous Test :-) */ @Test public void shouldAnswerWithTrue() { assertTrue(true); } @Autowired private UserMapper userMapper; /** * 根据id测试 * * @author huangyi * @date 2021/12/23 16:36 */ @Test public void test1() { UserModel userModel = userMapper.selectById(1); System.out.println(userModel.getUsername()); } /** * 分页测试 * * @author huangyi * @date 2021/12/23 16:36 */ @Test public void test2() { IPage<UserModel> iPage = new Page<>(1, 10); QueryWrapper<UserModel> warpper = new QueryWrapper<>(); IPage<UserModel> page = userMapper.selectPage(iPage, warpper); System.out.println(JSON.toJSONString(page)); } @Test public void test3() { List<UserModel> userModels = userMapper.customQuery(); System.out.println(JSON.toJSONString(userModels)); } }
测试结果就不截图了