集成mybatis-plus框架

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.Driver
    username: root
    password: 
    url: jdbc:mysql://bj--grp-1a6li...com:24169/?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
    type: 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 {

    @Resource
    private UserMapper userMapper;

    @Override
    public 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 {

    @Resource
    private UserService userService;

    @PostMapping
    public 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S-X-S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值