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. Ultimate Chicken Horse GameProject第三次迭代成果文档

    经过三次迭代我们实现了游戏的基本功能 项目文档的github链接:https://github.com/k6tok12355/Ultimate-Chicken-Horse 下面是我们在第一次迭代中设定 ...

  2. RPC调用和HTTP调用的区别

    很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...

  3. vscode自定义vue模板代码

    File--->preference -->user Snippets-->搜索html.json 编辑 加入以下自定义代码内容 "Html5-Vue": { & ...

  4. pandas使用大全--数据与处理

    1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 导入CSV或者xlsx文件: df = pd. ...

  5. JDBC的安装与使用

    JDBC的安装 首先在登录MySQL的官网下载JDBC-MySQL数据库驱动,或者去www.mysql.com/products/connector直接下载. 因为jdbc包属于第三方包,因此要自己导 ...

  6. LINQ 之 SelectMany

    声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.第一种用法: public static IEnumerable<TResult> SelectMany<TSo ...

  7. Mysql权限整理及授权命令

    1.创建用户sql> use mysql;sql> create user 'Ruthless'@'%' identified by '123456';注意:Ruthless -> ...

  8. DEDECMS安全设置怎样做,您就不会说它不安全了

    dedecms是好用,优化也好,就是不安全,个人是这样认为的,今天 闲着没事 整理了一些有助于dedecms网站安全的一些设置,可以说是目前最全的dedecms安全设置! 其一:保持DEDE更新,及时 ...

  9. python3 用户名和密码三次错误

    一.需求 1)密码输错超过三次进行锁定: 2)如果用户名在锁定文件中提示错误: 二.流程图 三.代码 # Aduthor:CCIP-Ma import sys f=open("passwor ...

  10. Mac破解百度云

    https://github.com/CodeTips/BaiduNetdiskPlugin-macOS