MybatisPlus快速入门

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MybatisPlus快速入门


引入MyBatisPlus快速上手
在SpringBoot项目的基础上加入依赖

1、添加依赖




com.mysql
mysql-connector-j
runtime

x

org.projectlombok
lombok
true



org.springframework.boot
spring-boot-starter-test
test



com.baomidou
mybatis-plus-boot-starter
3.5.3.1


2、yml配置文件

spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost/mybatisplusdb?useSLL=false&characterEncoding=UTF-8
username: root
password: 123456

mybatis-plus:

myBatisPlus扫描包

mapper-location: classpath:mapper/.xml
configuration:

# MyBatisPlus日志打印
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 开启驼峰命名
map-underscore-to-camel-case: true

3、pojo

实体类

package com.zsh.pojo;

@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("user")
public class User {

@TableId(type = IdType.AUTO)
private Integer id;

private String name;

private Integer age;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateTime;

}
4、mapper

package com.zsh.mapper;

@Mapper
public interface UserMapper extends BaseMapper {
}
5、Service

package com.zsh.service;

public interface UserService extends IService {
}
6、ServiceImpl

package com.zsh.service.impl;

@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
}
Mapper.xml的配置文件
创建Mapper.xml文件

src --> main --> resources下建一个和mapper路径一样的包 :要用反斜杠com\zsh\springboot_mybatis\mapper

<?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">



select * from user where id = #{id}


MybatisPlus单表增删改查
1、创建Mapper

package com.example.sutdent.mapper;

@Mapper
public interface UserMapper extends BaseMapper {

// 登录
@Select("select * from user where username = #{username} and password = #{password}")
public User login(User user);

}
2、创建service

package com.example.sutdent.service;

public interface UserService extends IService {

// 登录
public User login(User user);

// 列表
public List<User> list(@Param("username") String username);

}
3、创建serviceimpl

package com.example.sutdent.service.impl;

@Service
public class UserServiceImpl extends ServiceImpl implements UserService {

@Autowired
private UserMapper userMapper;

@Override
public User login(User user) {
    return userMapper.login(user);
}

}
4、创建Controller

package com.example.sutdent.controller;

@RestController
@RequestMapping("/User")
@Api(tags = "这是UserController")
public class UserController {

@Autowired
private UserService userService;

// 登录
@ApiOperation("登录")
@PostMapping("/login")
public Object login(User user){
    User login = userService.login(user);
    return Result.success("获取成功",login);
}

// 根据id查询
@ApiOperation("根据id查询")
@GetMapping("/findById")
public Object findById(Integer userid){
    User byId = userService.getById(userid);
    return Result.success("查询成功",byId);
}

// 列表
@ApiOperation("列表")
@GetMapping("/list")
public Object list(){
    List<User> list = userService.list();
    return Result.success("获取成功",list);
}

// 添加
@ApiOperation("添加")
@PostMapping("/add")
public Object add(User user){
    boolean i = userService.save(user);
    return Result.success("添加成功");
}

// 修改
@ApiOperation("修改")
@PutMapping("/update")
public Object update(User user){
    boolean i = userService.updateById(user);
    return Result.success("修改成功");
}

// 删除
@ApiOperation("删除")
@DeleteMapping("/delete")
public Object delete(Integer userid){
    boolean i = userService.removeById(userid);
    return Result.success("删除成功");
}

}
动态sql的xml文件写法
查询


select * from empx


name like concat('%',#{name},'%')


and gender = #{gender}


and entrydate between #{begin} and #{end}



修改


update employee


name = #{name},


username = #{username},


password = #{password},


phone = #{phone},


sex = #{sex},


id_number = #{idNumber},


status = #{status},


update_time = #{updateTime},


update_user = #{updateUser},


where id = #{id}

删除


delete from emp where id in

    #{id}
</foreach>


MyBatisPlus两表联查
1、pojo实体类

package com.zsh.pojo;

@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("user")
public class User {

@TableId(type = IdType.AUTO)
private Integer id;

private String name;

private Integer age;

private Integer sex;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateTime;

}
package com.zsh.pojo;

@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("sex")
public class Gender {

@TableId(type = IdType.AUTO)
private Integer id;

private String sex;

}
package com.zsh.pojo;

@AllArgsConstructor
@NoArgsConstructor
@Data
public class UserVO {

private Integer id;

private String name;

private Integer age;

private Integer sex;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateTime;

private Integer sum;

private Gender gender;

}
2、Mapper

package com.zsh.mapper;

@Mapper
public interface UserMapper extends BaseMapper {

@Select("select * from user")
List<UserVO> selectAll();

}
3、Service

package com.zsh.service;

public interface UserService extends IService {
void export(HttpServletResponse response);

List<UserVO> selectTwo();

}
4、ServiceImpl

package com.zsh.service.impl;

@Service
public class UserServiceImpl extends ServiceImpl implements UserService {

@Autowired
private UserMapper userMapper;

@Autowired
private GenderMapper genderMapper;

@Override
public List<UserVO> selectTwo() {
    // 查询user表
    List<UserVO> userList = userMapper.selectAll();
    for (UserVO userVO : userList) {
        // 查询性别表(根据user的sex值)
        Gender gender = genderMapper.selectById(userVO.getSex());
        // 给返回结果设置性别
        userVO.setGender(gender);
    }
    // 返回
    return userList;
}

}
5、Test

package com.zsh.mapper;

@SpringBootTest
public class MybatisPlusTest {

@Autowired
private UserService userService;

@Test
public void selectTwo(){
    List<UserVO> userVOList = userService.selectTwo();
    System.out.println("userVOList:" + userVOList);
}

}

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Java 数据库连接
MyBatis快速入门以及环境搭建和CRUD的实现
MyBatis快速入门以及环境搭建和CRUD的实现
112 0
|
SQL Java 关系型数据库
Mybatis知识【Mybatis快速入门】第二章
Mybatis知识【Mybatis快速入门】第二章
|
3月前
|
SQL Java 数据库连接
MyBatis-Plus快速入门:从安装到第一个Demo
本文将带你从零开始,快速入门 MyBatis-Plus。我们将首先介绍如何安装和配置 MyBatis-Plus,然后通过一个简单的示例演示如何使用它进行数据操作。无论你是 MyBatis 的新手还是希望提升开发效率的老手,本文都将为你提供清晰的指导和实用的技巧。
828 0
MyBatis-Plus快速入门:从安装到第一个Demo
|
8月前
|
Java 数据库连接 API
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
82 3
|
9月前
|
SQL Java 数据库连接
Mybatis快速入门,Mybatis的核心配置文件
Mybatis快速入门,Mybatis的核心配置文件
53 1
|
8月前
|
Java 数据库连接 Apache
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
|
9月前
|
XML Java 数据库连接
【MyBatisPlus】快速入门、常用注解、常用配置
【MyBatisPlus】快速入门、常用注解、常用配置
94 0
|
9月前
|
SQL Java 数据库连接
【MyBatisPlus】通俗易懂 快速入门 详细教程
【MyBatisPlus】通俗易懂 快速入门 详细教程
893 0
|
9月前
|
SQL Java 数据库连接
【MyBatis-Plus】快速精通Mybatis-plus框架—快速入门
【MyBatis-Plus】快速精通Mybatis-plus框架—快速入门
315 0
|
9月前
|
Java 关系型数据库 数据库连接
SpringBoot使用Mybatis 快速入门
SpringBoot使用Mybatis 快速入门
62 0