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

集成mybatis-plus框架

文章目录

    • 1.新建一个sun_frame数据库并创建user表
    • 2.新建一个sun-common-mybatisplus模块
        • 1.maven项目
        • 2.添加依赖
    • 3.sun-user集成mybatis-plus
        • 1.配置application.yml
        • 2.修改架构,由sun-user模块引入需要的公共模块
        • 3.代码目录结构
        • 4.mapper:po查,po封
          • 1.UserMapper.java(一会使用@MapperScan注解扫描)
          • 2.UserMapper.xml(这个xml放在了非resource目录下,就需要在父模块显示配置扫描,之前配过)
        • 5.service:dto查,vo封
          • 1.UserService.java
          • 2.UserServiceImpl.java 添加@Service注解
        • 6.controller:req查,vo封
          • UserController.java 添加@RestController注解
        • 7.entity
          • 1.UserReq.java
          • 2.UserDto.java
          • 3.UserPo.java
        • 8.将项目clean-package试一下
          • 1.报错找不到依赖
          • 2.这种情况就在父模块clean-install一下就好了
          • 3.如果java -jar 启动时报错sun-user-1.0-SNAPSHOT.jar中没有主清单属性,往往是没有打包插件
        • 9.apipost测试

1.新建一个sun_frame数据库并创建user表

# 创建数据库sun-frame
CREATE DATABASE sun_frame DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
use sun_frame;
# 创建user表
CREATE TABLE `user` (`id` bigint NOT NULL AUTO_INCREMENT,`name` varchar(16) COLLATE utf8mb4_general_ci DEFAULT NULL,`age` int DEFAULT NULL,`create_by` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,`create_time` timestamp NULL DEFAULT NULL,`update_by` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,`update_time` timestamp NULL DEFAULT NULL,`delete_flag` tinyint DEFAULT NULL,`version` int DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

2.新建一个sun-common-mybatisplus模块

1.maven项目

CleanShot 2024-07-09 at 15.33.47@2x

2.添加依赖
<?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>com.sunxiansheng</groupId><artifactId>sun-common</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>sun-common-mybatisplus</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- jdbc --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><!-- 父模块统一指定版本 --></dependency><!-- druid连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.21</version></dependency><!-- mysql连接 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><!-- 父模块统一指定版本 --></dependency><!-- mybatis-plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies></project>

3.sun-user集成mybatis-plus

1.配置application.yml
server:port: 8080
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: url: jdbc:mysql://bj--grp-1a6li...com:24169/?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=falsetype: com.alibaba.druid.pool.DruidDataSource # druid连接池druid:initial-size: 20 # 初始化连接数min-idle: 20 # 最小空闲连接数max-active: 100 # 最大连接数max-wait: 60000 # 获取连接的最大等待时间
2.修改架构,由sun-user模块引入需要的公共模块
<?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>com.sunxiansheng</groupId><artifactId>sun-frame</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>sun-user</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- 引入common-web --><dependency><groupId>com.sunxiansheng</groupId><artifactId>sun-common-web</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- 引入common-mybatisplus --><dependency><groupId>com.sunxiansheng</groupId><artifactId>sun-common-mybatisplus</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
3.代码目录结构

CleanShot 2024-07-09 at 17.35.20@2x

4.mapper:po查,po封
1.UserMapper.java(一会使用@MapperScan注解扫描)
package com.sunxiansheng.user.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sunxiansheng.user.entity.po.UserPo;
import org.springframework.stereotype.Repository;/*** Description:* @Author sun* @Create 2024/7/9 15:59* @Version 1.0*/
public interface UserMapper extends BaseMapper<UserPo> {
}
2.UserMapper.xml(这个xml放在了非resource目录下,就需要在父模块显示配置扫描,之前配过)
<?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="com.sunxiansheng.user.mapper.UserMapper">
</mapper>

CleanShot 2024-07-09 at 18.05.53@2x

5.service:dto查,vo封
1.UserService.java
package com.sunxiansheng.user.service;import com.sunxiansheng.user.entity.dto.UserDto;/*** Description: service:dto查,vo封* @Author sun* @Create 2024/7/9 16:41* @Version 1.0*/
public interface UserService {int addUser(UserDto userDto);}
2.UserServiceImpl.java 添加@Service注解
package com.sunxiansheng.user.service.impl;import com.sunxiansheng.user.entity.dto.UserDto;
import com.sunxiansheng.user.entity.po.UserPo;
import com.sunxiansheng.user.mapper.UserMapper;
import com.sunxiansheng.user.service.UserService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;import javax.annotation.Resource;/*** Description:* @Author sun* @Create 2024/7/9 16:45* @Version 1.0*/
@Service
public class UserServiceImpl implements UserService {@Resourceprivate UserMapper userMapper;@Overridepublic int addUser(UserDto userDto) {// 封装数据UserPo userPo = new UserPo();BeanUtils.copyProperties(userDto, userPo);int insert = userMapper.insert(userPo);return insert;}}
6.controller:req查,vo封
UserController.java 添加@RestController注解
package com.sunxiansheng.user.controller;import com.sunxiansheng.user.entity.dto.UserDto;
import com.sunxiansheng.user.entity.req.UserReq;
import com.sunxiansheng.user.service.UserService;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/*** Description:* @Author sun* @Create 2024/7/8 17:55* @Version 1.0*/
@RestController
@RequestMapping("/user")
public class UserController {@Resourceprivate UserService userService;@PostMappingpublic Integer addUser(@RequestBody UserReq userReq) {UserDto userDto = new UserDto();BeanUtils.copyProperties(userReq, userDto);int i = userService.addUser(userDto);return i;}
}
7.entity
1.UserReq.java
package com.sunxiansheng.user.entity.req;import lombok.Data;/*** Description:* @Author sun* @Create 2024/7/9 16:53* @Version 1.0*/
@Data
public class UserReq {private String name;private Integer age;}
2.UserDto.java
package com.sunxiansheng.user.entity.dto;import lombok.Data;/*** Description: 从数据库中查询数据* @Author sun* @Create 2024/7/9 16:01* @Version 1.0*/
@Data
public class UserDto {private String name;private Integer age;}
3.UserPo.java
package com.sunxiansheng.user.entity.po;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;import java.util.Date;/*** Description: 封装从数据库中查询的数据* @Author sun* @Create 2024/7/9 16:02* @Version 1.0*/
@TableName("user") // 指定表名
@Data
public class UserPo {@TableId(value = "id", type = IdType.AUTO) // 指定主键private Long id;private String name;private Integer age;private String createBy;private Date createTime;private String updateBy;private Date updateTime;private Integer deleteFlag;private Integer version;}
8.将项目clean-package试一下
1.报错找不到依赖

2.这种情况就在父模块clean-install一下就好了
3.如果java -jar 启动时报错sun-user-1.0-SNAPSHOT.jar中没有主清单属性,往往是没有打包插件
    <!-- maven打包常规配置 --><build><!--打包成jar包时的名字--><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 指定打包插件的版本,如果父模块指定了版本,那么就不需要自定义版本了 --><version>2.3.0.RELEASE</version><executions><execution><goals><!-- 将所有的包都打到这个模块中 --><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
9.apipost测试

CleanShot 2024-07-09 at 18.24.51@2x

CleanShot 2024-07-09 at 18.25.05@2x

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 3.3、matlab彩色图和灰度图的二值化算法汇总
  • 如何在不格式化的情况下解锁 Android 智能手机密码
  • ue5远程渲染和本地渲染的区别,及云渲染的联系
  • 【MySQL 11】索引 (带思维导图)
  • 8.4 数据库基础技术-SQL
  • http基础原理及应用
  • 【SQL】窗口函数sum() over ( partition by xx order by xx)
  • 基于game-based算法的动态频谱访问matlab仿真
  • 重构多重children数据 减少数据
  • 服务启动方法LINUX
  • JS数据类型——【set】精讲
  • 前沿重器[55] | prompt综述的解释和个人思考
  • FreeSWITCH 1.10.10 简单图形化界面28 - 麒麟V10 SP3服务器系统X86和ARM版本安装FreeSWITCH
  • 从行或列的角度思考矩阵-向量乘法(matrix-vector multiplication)
  • I2C总线中的时钟延长和死锁
  • 【css3】浏览器内核及其兼容性
  • 【node学习】协程
  • Android单元测试 - 几个重要问题
  • angular2 简述
  • axios 和 cookie 的那些事
  • C++11: atomic 头文件
  • C++入门教程(10):for 语句
  • ES6之路之模块详解
  • ES学习笔记(12)--Symbol
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript创建对象的四种方式
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • vue的全局变量和全局拦截请求器
  • 阿里云Kubernetes容器服务上体验Knative
  • 分布式任务队列Celery
  • 给初学者:JavaScript 中数组操作注意点
  • 工作手记之html2canvas使用概述
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 配置 PM2 实现代码自动发布
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $(selector).each()和$.each()的区别
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (23)Linux的软硬连接
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (七)Java对象在Hibernate持久化层的状态
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (算法设计与分析)第一章算法概述-习题
  • (五)IO流之ByteArrayInput/OutputStream
  • (转) RFS+AutoItLibrary测试web对话框
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 解决重复提交问题
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET8 动态添加定时任务(CRON Expression, Whatever)
  • .Net多线程总结