MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生 。
整合SpringBoot创建数据库和数据表:
CREATE DATABASE mybatisplus;CREATE TABLE tbl_employee( id INT(11) PRIMARY KEY AUTO_INCREMENT, last_name VARCHAR(255), email VARCHAR(255), gender CHAR(1), age INT(11));INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('tom','tom@qq.com',1,20);INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('jack','jack@qq.com',1,21);INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('jerry','jerry@qq.com',0,22);INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('smith','smith@qq.com',0,23);
文章插图
创建数据表对应的Bean类:
@Data@NoArgsConstructor@AllArgsConstructorpublic class Employee { private Integer id; private String lastName; private String email; private Integer gender; private Integer age;}
文章插图
添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1</version></dependency><dependency> <groupId>MySQL</groupId> <artifactId>mysql-connector-JAVA</artifactId></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.13</version></dependency>
文章插图
配置数据源:
spring: datasource: url: jdbc:mysql:///mybatisplus?serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 type: com.alibaba.druid.pool.DruidDataSourcemybatis-plus: configuration: log-impl: org.Apache.ibatis.logging.stdout.StdOutImpl # 输出sql
文章插图
最后在启动类上添加MApper接口扫描注解:
@SpringBootApplication@MapperScan("com.wwj.mybatisplusdemo.mapper")public class MybatisplusDemoApplication { public static void main(String[] args) { SpringApplication.run(MybatisplusDemoApplication.class, args); }}
文章插图
通用CRUD回想一下传统的MyBatis开发,若是想要实现员工信息的增删改查,该如何实现?我们需要编写Mapper接口,并创建对应的映射文件,然后配置每一个接口方法对应的sql,对于一些非常简单的操作,这些步骤显然非常麻烦,那么有没有可能让这些简单的增删改查自动实现呢?MyBatisPlus帮我们实现了这个想法,在MyBatisPlus中,我们只需要创建Mapper接口并继承BaseMapper即可获得员工表的增删改查方法 。
创建Mapper接口:
public interface EmployeeMapper extends BaseMapper<Employee> {}
文章插图
既然继承了BaseMapper接口就拥有了增删改查方法,那么这些方法肯定是从BaseMapper中继承下来的,所以来看看BaseMapper的源码:
public interface BaseMapper<T> extends Mapper<T> { int insert(T entity); int deleteById(Serializable id); int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap); int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper); int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList); int updateById(@Param(Constants.ENTITY) T entity); int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper); T selectById(Serializable id); List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList); List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap); T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); <E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper); <E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 金丝玫瑰茶烟,茶烟怎么样好吸么
- 红菊花茶,菊花茶的作用有哪些
- Java并发工具类的简单使用
- vscode 前端常用插件推荐
- 一些不好记却很好用的 CSS 属性
- Redis在用户注册登录的妙用
- 诸葛亮用了多少艘船,草船借箭是周瑜还是诸葛亮
- 通用的底层埋点都是怎么做的?
- 免费供苗种植回收,投资成本(不含土地承包费用
- 坝上金莲花颗粒副作用,金莲花的副作用