文章目录
- 1.新建一个sun_frame数据库并创建user表
- 2.新建一个sun-common-mybatisplus模块
-
- 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表
CREATE DATABASE sun_frame DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
use sun_frame;
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项目

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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<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:
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>
<dependency>
<groupId>com.sunxiansheng</groupId>
<artifactId>sun-common-web</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.sunxiansheng</groupId>
<artifactId>sun-common-mybatisplus</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
3.代码目录结构

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;
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>

5.service:dto查,vo封
1.UserService.java
package com.sunxiansheng.user.service;
import com.sunxiansheng.user.entity.dto.UserDto;
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;
@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;
@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;
@Data
public class UserReq {
private String name;
private Integer age;
}
2.UserDto.java
package com.sunxiansheng.user.entity.dto;
import lombok.Data;
@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;
@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中没有主清单属性,往往是没有打包插件
<build>
<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测试

