当前位置: 首页 > news >正文

mybatis-plus-01-环境初始化及简单应用

文章目录

  • 【README】
  • 【1】springboot集成mybatis-plus配置
    • 【1.1】目录结构
      • 【相关说明】
    • 【1.2】代码示例
      • 【pom.xml】
      • 【application.properties】
      • 【MybatisPlusNoteController】
      • 【UserAppService】
      • 【UserMapper】
      • 【UserPO】
      • 【建表语句】
  • 【2】演示

【README】

本文代码参见: https://github.com/TomJourney/mybatis-plus-test

本文集成了springboot与mybatis-plus,并提供了一个mybatis-plus的简单应用;

【使用MyBatisPlus的关键】springboot集成了mybatis的基础上,使用mybatis-plus就2步:

  • 步骤1)引入mybatis-plus依赖,删除 mybatis-spring-boot-starter 依赖;
  • 步骤2)业务Mapper如UserMapper继承MyBatis-Plus中的BaseMapper;

【pom.xml中spring-mybatis与mybaits-plus依赖配置】

<!-- mybatis conf (新增mybatis-plus-boot-starter依赖,需要把mybatis-spring-boot-starter注释或删除,否则报包冲突)-->
<!--    <dependency>-->
<!--      <groupId>org.mybatis.spring.boot</groupId>-->
<!--      <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!--      <version>3.0.3</version>-->
<!--    </dependency>-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.12</version>
</dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version>
</dependency>


【1】springboot集成mybatis-plus配置

【1.1】目录结构

在这里插入图片描述

【相关说明】

本文项目使用了springboot, lombok,mybatis-plus;采用不规范的三层架构(为了求快),正式的生产环境不要参考本文代码;

补充:规范的代码应该是4层架构,包括adapter,app,domain,infra (有兴趣的同学参考ddd);



【1.2】代码示例

【pom.xml】

<?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 https://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>3.3.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.tom.studynote</groupId><artifactId>mybatis-plus-test</artifactId><version>0.0.1-SNAPSHOT</version><name>mybatis-plus-test</name><description>mybatis-plus-test</description><url/><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>3.3.5</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version></dependency><!--【数据库】数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.11</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/org.mapstruct/mapstruct --><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>1.6.2</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>1.6.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- mybatis conf (新增mybatis-plus-boot-starter依赖,需要把mybatis-spring-boot-starter注释或删除,否则报包冲突)--><!--    <dependency>--><!--      <groupId>org.mybatis.spring.boot</groupId>--><!--      <artifactId>mybatis-spring-boot-starter</artifactId>--><!--      <version>3.0.3</version>--><!--    </dependency>--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.12</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

【application.properties】

server.port = 8081# spring datasource conf
spring.datasource.url=jdbc:mysql://localhost:3306/mywarn?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource# druid
spring.datasource.druid.initial-size=1
spring.datasource.druid.max-active=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-wait=60000# mybatis conf
mybatis.mapper-locations=classpath:com/mybatisplustest/infrastructure/dao/**/*.xml
mybatis.config-location=classpath:mybatis-config.xml
check-config-location=true# template path
spring.web.resources.static-locations=classpath:/templates# mybaits-plus
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

【TomMybatisPlusNoteApplication】

@SpringBootApplication
@MapperScan(basePackages = {"com.tom.study.mybatisplustest.infrastructure.dao"})
public class TomMybatisPlusNoteApplication {public static void main(String[] args) {SpringApplication.run(TomMybatisPlusNoteApplication.class, args);}
}

【MybatisPlusNoteController】

@RestController
@RequestMapping("/mybatis-plus-note")
public class MybatisPlusNoteController {@Autowiredprivate UserAppService userAppService;@GetMapping("/user/{id}")public UserPO findUserById(@PathVariable("id") String id) {return userAppService.findUserById(id);}@PostMapping(path = "/add-user", consumes = "application/json")public void addUser(@RequestBody UserPO userPO) {userAppService.saveNewUser(userPO);}
}

【UserAppService】

@Service
public class UserAppService {@AutowiredUserMapper userMapper;public UserPO findUserById(String id) {return userMapper.selectById(id);}public void saveNewUser(UserPO UserPO) {userMapper.insert(UserPO);}
}

【UserMapper】

【关键】业务Mapper-UserMapper只需要继承BaseMapper即可使用mybatis-plus 提供的api

public interface UserMapper extends BaseMapper<UserPO> {
}

【UserPO】

@Data
@TableName("user_tbl")
public class UserPO {private Long id;private String name;private String mobilePhone;private String addr;
}

【建表语句】

-- mywarn.user_tbl definitionCREATE TABLE `user_tbl` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户名称',`mobile_phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '移动电话',`addr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '地址',`user_state` char(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户状态/ON-在线/OFF-离线',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,`last_modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=117 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户表';


【2】演示

请求路径:localhost:8081/mybatis-plus-note/add-user

报文:

{"id": 10,"name": "user10","mobilePhone": "17712340010","addr": "成都天府三街010号"
}

在这里插入图片描述



http://www.dtcms.com/a/267234.html

相关文章:

  • 基于uni-app的书法学习管理小程序的设计与实现
  • Java IO相关技术小结
  • SpringCloud系列(51)--SpringCloud Stream之使用分组解决消息重复消费问题
  • 你的Prompt还有很大提升
  • PyTorch中 item()、tolist()使用详解和实战示例
  • 企业微信iPad协议端强制拉群漏洞深度分析
  • Scrapy进阶封装(第四阶段:中间件设置,动态UA,ip代理池)
  • 【STM32实践篇】:GPIO 详解
  • 【深度学习新浪潮】基于扩散模型的图像编辑加速方法
  • 传输层 udptcp
  • 【性能优化与架构调优(二)】高性能数据库设计与优化
  • 【科普】Keil5软件使用教程、小技巧学习笔记:11个知识点。DIY机器人工房
  • 【数据结构】排序算法:归并与堆
  • Python入门Day4
  • Cortex-M 异常处理的 C 实现、栈帧以及 EXC_RETURN
  • 操作符详解(上)
  • 深入解析Redis 7.0中每种数据类型的底层实现
  • 【Qt】QStringLiteral 介绍
  • 2025最新Telegram快读助手:一款智能Telegram链接摘要机器人
  • 深入理解微服务中的服务注册与发现
  • 《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
  • 云原生微服务间的异步消息通信:最终一致性与系统容错的架构实战
  • 供应链管理学习笔记4-供应链网络设计
  • 前端-CSS-day1
  • QT中的网络通信
  • LLM:位置编码详解与实现
  • 深层神经网络:原理与传播机制详解
  • java的注解和反射
  • JVM的位置和JVM的结构体系
  • 交互式剖腹产手术模拟系统开发方案