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. RabbitMQ的使用(五)RabbitMQ Java Client简单生产者、消费者代码示例

    pom文件: <dependencies> <dependency> <groupId>com.rabbitmq</groupId> <artif ...

  2. C实现string字符串

    在C中实现string字符串,使用typedef将string定义为char *. #include <stdio.h> #include <stdlib.h> #includ ...

  3. win10 去除快捷方式小箭头

    @echo off color 2 reg delete HKCR\lnkfile /v IsShortcut /f reg delete HKCR\piffile /v IsShortcut /f ...

  4. Docker学习(六)-Kubernetes - Spring Boot 应用

    接上一篇 https://www.cnblogs.com/woxpp/p/11872155.html 新建 k8s-demo.yaml apiVersion: apps/v1beta2 kind: D ...

  5. Kubernetes 企业级集群部署方式

    一.Kubernetes介绍与特性 1.1.kubernetes是什么 官方网站:http://www.kubernetes.io • Kubernetes是Google在2014年开源的一个容器集群 ...

  6. RESTful及API设计(原)

    RESTful是一种架构风格,是由Fielding博士在自己的博士论文中提出并详细论述的. 它是用于指导web系统设计的,而指导API设计只是它的一小部分功能而已,如果只用它指导API设计就太大材小用 ...

  7. DAX 第七篇:分组聚合

    DAX有三个用于生成分组聚合数据的函数,这三个函数有两个共同的特征:分组列和扩展列. 分组列是用于分组的列,只能来源于基础表中已存的列,分组列可以来源于同一个表,也可以来源于相关的列. 扩展列是由na ...

  8. CentOS 8 换源,设置dnf / yum镜像

    aliyun更新了centos8的说明 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos- ...

  9. python接口上传图片和文件的方法

    import requests def sendImg(img_path, img_name, img_type='image/jpeg'): """ :param im ...

  10. 解决使用elementUI框架el-upload跨域上传时session丢失问题

    解决方法一: 1.使用elementUI框架el-upload跨域上传时,后端获取不到cookie,后端接口显示未登录,在添加了 with-credentials="true"后依 ...