SpringBoot 整合 Mybatis-Plus + Mysql

xiaoxiao2025-08-26  89

mybatis-plus是mybatis的一款插件,它的主要作用是快速开发,省略mybatis的配置,具体的功能请参照官网。

开发环境:

springboot,maven,mybatis-plus,mysql,jdk1.8,lombok,阿里druid数据源

整合步骤:

1、在pom.xml加入相关配置

2、在resources中添加application.yml,设置mysql相关配置

3、在基类中添加表名和表名中对应的字段名

4、定义mapper接口,继承BaseMapper<T>接口,该接口中封装了Sql

5、在启动类中添加mapper扫描的包

5、调用mapper接口即可

项目架构:

具体步骤代码:

1、在pom.xml加入相关配置

<!-- spring-boot-starter-parent 和 mybatis-plus-boot-starter 有版本要求--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> </parent> <dependencies> <!-- spring-boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <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> <!--mybatis-plus自动的维护了mybatis以及mybatis-spring的依赖, 在springboot中这三者不能同时的出现,避免版本的冲突,表示:跳进过这个坑--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.1</version> </dependency> <!-- 引入Druid依赖,阿里巴巴所提供的数据源 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.29</version> </dependency> <!-- 提供mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.16</version> </dependency> </dependencies>

2、在resources中添加application.yml,设置mysql相关配置

server: port: 2525 # 该配置的名称是固定的,不可以改变,否则将不能自动加载到数据源中 spring: datasource: # 使用druid数据源 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.3.172:3306/poc?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8 username: devuser password: dev123 filters: stat maxActive: 20 initialSize: 1 maxWait: 60000 minIdle: 1 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20

3、在基类中添加表名和表名中对应的字段名

@Data @NoArgsConstructor @AllArgsConstructor @TableName("tb_test_student") //对应表名 public class Student implements Serializable { //对应id,可不填 @TableId(value = "id") private int id; //对应字段名,如果属性名和字段名一致,可不填 @TableField("name") private String name; private String school; private String city; //表示表中没有这个字段,如果不加该注释,会抛异常 @TableField(exist = false) private String address; }

4、定义mapper接口,继承BaseMapper<T>接口,该接口中封装了Sql

public interface StudentMapper extends BaseMapper<Student> { }

5、在启动类中添加mapper扫描的包

@SpringBootApplication @MapperScan("com.springboot.mybatisplus.mapper") public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }

5、调用mapper接口即可

@RestController @RequestMapping("/mybatisplus") public class TestMain { @Autowired private StudentMapper studentMapper; @GetMapping("/list") public List<Student> list(){ List<Student> students = studentMapper.selectList(null); return students; } @GetMapping("/save") public String save(){ Student student = new Student(); student.setId(2); student.setCity("杭州"); student.setName("马云"); student.setSchool("杭州师范"); studentMapper.insert(student); return "success"; } }

打印sql:

mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

 

具体的API请参照mybatis-plus官网:http://mp.baomidou.com/guide/

github地址:

转载请注明原文地址: https://www.6miu.com/read-5035272.html

最新回复(0)