MyBatisPlus快速入门

官方网站
https://mp.baomidou.com/guide
慕课网视频
https://www.imooc.com/learn/1130 入门
https://www.imooc.com/learn/1171 进阶

1.引入依赖和springboot配置

2.实体类和数据库表

3.Mapper接口

4.Mapper映射文件(可选)

5.测试类

引入依赖和springboot配置

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1?userSSL=false&serverTimezone=GMT%2B8&characterEncoding=utf-8
username: root
password: root

实体类和数据库表

#创建用户表
#mysql> show collation;
#mysql> show collate;
#mysql> show charset; drop database if exists mp_01;
create database mp_01 character set utf8mb4 collate utf8mb4_general_ci;
use mp_01; drop table if exists user;
CREATE TABLE user (
id BIGINT(20) PRIMARY KEY NOT NULL COMMENT '主键',
name VARCHAR(30) DEFAULT NULL COMMENT '姓名',
age INT(11) DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
manager_id BIGINT(20) DEFAULT NULL COMMENT '直属上级id',
create_time DATETIME DEFAULT NULL COMMENT '创建时间',
CONSTRAINT manager_fk FOREIGN KEY (manager_id)
REFERENCES user (id)
) ENGINE=INNODB CHARSET=UTF8; #初始化数据:
INSERT INTO user (id, name, age, email, manager_id
, create_time)
VALUES (1087982257332887553, '大boss', 40, 'boss@baomidou.com', NULL
, '2019-01-11 14:20:20'),
(1088248166370832385, '王天风', 25, 'wtf@baomidou.com', 1087982257332887553
, '2019-02-05 11:12:22'),
(1088250446457389058, '李艺伟', 28, 'lyw@baomidou.com', 1088248166370832385
, '2019-02-14 08:31:16'),
(1094590409767661570, '张雨琪', 31, 'zjq@baomidou.com', 1088248166370832385
, '2019-01-14 09:15:15'),
(1094592041087729666, '刘红雨', 32, 'lhm@baomidou.com', 1088248166370832385
, '2019-01-14 09:48:16');
package com.mp.mybatis01.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import java.io.Serializable;
import java.time.LocalDateTime; @Data
@TableName("mp_user")
public class User implements Serializable {
@TableId
private Long userId;
@TableField("name")
private String realName;
private Integer age;
private String email;
private Long managerId;
private LocalDateTime createTime; //不对应表中字段 1.静态字段 2.瞬时字段 3.@TableField(exist = false)
// private transient String remark; // private static String remark;
// public static String getRemark(){return remark;}
// public static void setRemark(String remark){
// User.remark = remark;
// } @TableField(exist = false)
private String remark; }

Mapper接口

package com.mp.mybatis01.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
//@Mapper标识MyBatis的Mapper接口,@MapperScan用于扫描MyBatis的Mapper接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

测试类

package com.mp.mybatis01.dao;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mp.mybatis01.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; @RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
private UserMapper userMapper; @Test
public void selectList(){
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
} //如果插入成功则返回自动生成的主键
@Test
public void insert(){
User user = new User();
// user.setId(1180761990619959297L);
// user.setName("刘备");
user.setRemark("这是备注");
user.setRealName("刘备");
user.setAge(25);
int rows = userMapper.insert(user);
System.out.println(rows);
System.out.println(user);
} @Test
public void selectById(){
User user = userMapper.selectById(1087982257332887553L);
System.out.println(user);
} @Test
public void selectBatchIds(){
// List<User> users = userMapper.selectBatchIds(null); // List<Long> idList = new ArrayList<>();
// List<User> users = userMapper.selectBatchIds(idList); List<Long> idList = new ArrayList<>();
idList.add(1087982257332887553L);
idList.add(1088248166370832385L);
idList.add(1088250446457389058L);
List<User> users = userMapper.selectBatchIds(idList);
users.forEach(System.out::println);
} @Test
public void selectByMap(){
HashMap<String, Object> condition = new HashMap<>();
condition.put("name", "刘备");
condition.put("age", 25);
List<User> users = userMapper.selectByMap(condition);
users.forEach(System.out::println);
} @Test
public void selectList2(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25).likeLeft("name", "备");
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
} @Test
public void selectList3(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper = queryWrapper.inSql("manager_id", "select user_id from mp_user where name like '%大%' ");
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
} @Test
public void selectList4(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.nested(wq->wq.lt("age", 40).or().isNotNull("email")).likeRight("name", "王");
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
} @Test
public void selectList5(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("user_id", "realName").like("name", "刘备");
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
} }

Mapper映射文件

mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印sql
mapper-locations: classpath:mapper/*.xml #映射文件位置
type-aliases-package: com.mp.mybatis01.entity #实体类别名
<?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.mp.mybatis01.dao.UserMapper">
<select id="selectByName" resultType="User">
select * from mp_user where name = #{name}
</select>
</mapper>
package com.mp.mybatis01.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mp.mybatis01.entity.User;
import org.apache.ibatis.annotations.Select; import java.util.List; //@Mapper标识MyBatis的Mapper接口,@MapperScan用于扫描MyBatis的Mapper接口
@Mapper
public interface UserMapper extends BaseMapper<User> { List<User> selectByName(String name); @Select("select * from mp_user where age > #{age}")
List<User> selectByAge(Integer age);
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
private UserMapper userMapper;
@Test
public void selectByName(){
List<User> users = userMapper.selectByName("王天风");
users.forEach(System.out::println);
} @Test
public void selectByAge(){
List<User> users = userMapper.selectByAge(20);
users.forEach(System.out::println);
}
}

MyBatisPlus快速入门的更多相关文章

  1. Mybatis-plus快速入门

    简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 特性 无侵入:只做增强不做改变,引入它不会对现 ...

  2. mybatis-plus快速入门使用

    目前正在维护的公司的一个项目是一个ssm架构的java项目,dao层的接口有大量数据库查询的方法,一个条件变化就要对应一个方法,再加上一些通用的curd方法,对应一张表的dao层方法有时候多达近20个 ...

  3. mybatis-plus快速入门并使用

    目录 mybatis-plus的初次使用总结 说明:官网自有黄金屋,深入学习看官网是必须的,废话不多说 环境:springboot.mysql 一.配置 pom yml配置数据库 二.代码生成器 生成 ...

  4. MyBatis-Plus 快速入门

    1.简介 MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 1.1.特性 无侵入:只做增强不做改变, ...

  5. 一文MyBatis-Plus快速入门

    目录 一.依赖及配置 1.在idea中创建一个SpringBoot项目,在pom.xml中添需要的依赖 2.配置数据库连接 3.在启动类中添加注解 @MapperScan 扫描Mapper接口包 4. ...

  6. 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)

    [原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...

  7. MyBatis-Plus工具快速入门

    MyBatis-Plus官方文档:http://mp.baomidou.com/#/quick-starthttp://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A ...

  8. SpringBoot_MyBatisPlus快速入门小例子

    快速入门 创建一个表 我这里随便创建了一个air空气表 idea连接Mysql数据库 点击右侧database再点击添加数据库 找到Mysql 添加用户名,密码,数据库最后点击测试 测试成功后在右侧就 ...

  9. 一文快速入门分库分表中间件 Sharding-JDBC (必修课)

    书接上文 <一文快速入门分库分表(必修课)>,这篇拖了好长的时间,本来计划在一周前就该写完的,结果家庭内部突然人事调整,领导层进行权利交接,随之宣布我正式当爹,紧接着家庭地位滑落至第三名, ...

随机推荐

  1. linux-部署2

    gunicorn+supervisor 1.gunicorn 安装: pip3 install gunicorn 配置: 两种方式:命令和文件,因为配置项比较多,所以放在文件里,启动时指明配置文件即可 ...

  2. rest-framework框架——版本

    一.DRF版本控制介绍 随着项目更新,版本会越来越多,不能新的版本出现,旧版本就不再使用维护了.因此不同的版本会有不同的处理,且接口会返回不同的信息. API版本控制允许我们在不同的客户端之间更改行为 ...

  3. 数据仓库003 - 复习Linux shell命令 - 用户用户组 sudo 权限 du-sh find 

    一.用户用户组 [root@localhost ~]# ll /usr/sbin/user* -rwxr-x--- root root -- /usr/sbin/useradd -rwxr-x--- ...

  4. (二十八)golang--二维数组

    初始化: var array [2][3]int = [2][3]int{{0,0,0},{0,0,0}} var array [2][3]int = [...][3]int{{0,0,0},{0,0 ...

  5. mybatis批处理数据

    批处理数据主要有三种方式: 1.传统jdbc处理    2.mybatis批处理插入    3.使用executortype处理 jdbc 处理 1.通过 for循环插入 main方法如下所示: Co ...

  6. pixijs shader 扫光加强版

    pixijs shader 扫光加强版 const app = new PIXI.Application({ transparent: true }); document.body.appendChi ...

  7. vue 移动端禁止浏览器后退,禁止安卓和ios点击后退操作乱跳页面

    开发微信公众号网页,页面登录成功之后,是禁止再次返回到登录页. 我在页面设置了让禁止跳到登录页,可是在手机上有自带的微信浏览器后退按钮,所以必须要禁止浏览器后退,才能禁止后退到登录页. 刚开始百度,查 ...

  8. Window权限维持(七):安全支持提供者

    安全支持提供程序(SSP)是Windows API,用于扩展Windows身份验证机制.LSASS进程正在Windows启动期间加载安全支持提供程序DLL.这种行为使红队的攻击者可以删除一个任意的SS ...

  9. POC挖矿没有前途

    最好的工作量证明是能力证明,能力不适合存储.望文生义,能力的本质意义是“能”和“力”(所有的词汇都按照望文生义理解,因为所有不能望文生义的词汇都是不良的已经被前人修正或将来被后人修正)能力是流动的,迁 ...

  10. C# 方法的out、ref、params参数

    一.out参数实例 [实例]求一个数组中的最大值.最小值.总和.平均值 class Program { static void Main(string[] args) { //写一个方法 求一个数组中 ...