目录
一、参考文章
https://baomidou.com/pages/226c21/
二、创建工程


三、 引入mybatis-plus依赖
implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.5'
四、编写实体类
@Data
@TableName("user_info")
public class User {
@TableId(value = "user_id",type = IdType.AUTO)
private Integer userId;
@TableField("user_name")
private String userName;
private int sex;
}
五、编写mapper接口类
public interface UserMapper extends BaseMapper<User> {
}
六、编写Controller类
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/getAll")
public List<User> getAll() {
return userMapper.selectList(null);
}
}
七、启动类增加@MapperScan
@SpringBootApplication
@MapperScan("com.fafa.mapper")
public class MybatisPlusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusDemoApplication.class, args);
}
}
八、配置数据库连接
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_user?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
九、创建数据库及表
create database db_user;
use db_user;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user_info
-- ----------------------------
DROP TABLE IF EXISTS `user_info`;
CREATE TABLE `user_info` (
`user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户名',
`sex` tinyint NULL DEFAULT 0 COMMENT '性别 0 未知 1女 2男',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
十、启动测试
浏览器访问:http://localhost:8080/user/getAll
十一、自定义Mapper需增改以下文件
-
UserMapper.xml
<?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.fafa.mapper.UserMapper">
<resultMap type="User" id="userResult">
<result property="userId" column="user_id"/>
<result property="userName" column="user_name"/>
<result property="sex" column="sex"/>
</resultMap>
<sql id="selectUserVo">
select * from user_info
</sql>
<select id="selectUserList" parameterType="User" resultMap="userResult">
<include refid="selectUserVo"/>
<where>
<if test="userName != null ">and user_name like concat('%', #{userName}, '%')</if>
</where>
order by user_id desc
</select>
</mapper>
-
UserMapper.java
@Mapper
public interface UserMapper extends BaseMapper<User> {
/**
* 倒序查询用户信息
* @param user
* @return
*/
List<User> selectUserList(User user);
}
-
IUserService.java
public interface IUserService extends IService<User> {
/**
* 倒序查询用户信息
* @param user
* @return
*/
List<User> selectUserList(User user);
}
-
UserService.java
@Service
public class UserService extends ServiceImpl<UserMapper, User> implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectUserList(User user) {
return userMapper.selectUserList(user);
}
}
-
UserController.java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@GetMapping("/getAll")
public List<User> getAll() {
return userService.selectUserList(null);
}
}
-
application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_user?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
mybatis-plus:
type-aliases-package: com.fafa.entity
mapper-locations: classpath:/mappers/**/*.xml
十二、gradle完整配置
-
ext内容需配合设置云效仓库参数到环境变量及gradle使用-优快云博客使用
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.4'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.fafa'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
ext{
MAVEN_REPO_RELEASE_URL = System.getenv('MAVEN_REPO_RELEASE_URL')
MAVEN_REPO_SNAPSHOT_URL = System.getenv('MAVEN_REPO_SNAPSHOT_URL')
MAVEN_DEPLOY_USER = System.getenv('MAVEN_DEPLOY_USER')
MAVEN_DEPLOY_PASSWORD = System.getenv('MAVEN_DEPLOY_PASSWORD')
}
repositories {
maven { url "https://maven.aliyun.com/nexus/content/groups/public/" }
maven {
url 'https://maven.aliyun.com/repository/public'
}
maven { url "https://repo.spring.io/milestone" }
maven { url "https://plugins.gradle.org/m2/" }
maven {
credentials {
username MAVEN_DEPLOY_USER
password MAVEN_DEPLOY_PASSWORD
}
url MAVEN_REPO_RELEASE_URL
}
maven {
credentials {
username MAVEN_DEPLOY_USER
password MAVEN_DEPLOY_PASSWORD
}
url MAVEN_REPO_SNAPSHOT_URL
}
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.5'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
十三、junitTest
@SpringBootTest
class MybatisPlusDemoApplicationTests {
@Autowired
private UserMapper userMapper;
@Autowired
private IUserService uservice;
@Test
void contextLoads() {
List<User> list = userMapper.selectList(null);
Assert.isTrue(5 == list.size(), "查询成功");
list.forEach(System.out::println);
}
@Test
void selectUserAll(){
List<User> list =uservice.selectUserList(null);
Assert.isTrue(5 == list.size(), "查询成功");
list.forEach(System.out::println);
}
@Test
void add() {
User user = new User();
user.setUserName("张三");
user.setSex(0);
int count = userMapper.insert(user);
Assert.isTrue(count != 0, "添加数据成功");
}
}
gradle+springboot+mybatis-plus搭建工程

581

被折叠的 条评论
为什么被折叠?



