MyBatisPlus快速入门
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快速入门的更多相关文章
- Mybatis-plus快速入门
简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 特性 无侵入:只做增强不做改变,引入它不会对现 ...
- mybatis-plus快速入门使用
目前正在维护的公司的一个项目是一个ssm架构的java项目,dao层的接口有大量数据库查询的方法,一个条件变化就要对应一个方法,再加上一些通用的curd方法,对应一张表的dao层方法有时候多达近20个 ...
- mybatis-plus快速入门并使用
目录 mybatis-plus的初次使用总结 说明:官网自有黄金屋,深入学习看官网是必须的,废话不多说 环境:springboot.mysql 一.配置 pom yml配置数据库 二.代码生成器 生成 ...
- MyBatis-Plus 快速入门
1.简介 MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 1.1.特性 无侵入:只做增强不做改变, ...
- 一文MyBatis-Plus快速入门
目录 一.依赖及配置 1.在idea中创建一个SpringBoot项目,在pom.xml中添需要的依赖 2.配置数据库连接 3.在启动类中添加注解 @MapperScan 扫描Mapper接口包 4. ...
- 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)
[原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...
- MyBatis-Plus工具快速入门
MyBatis-Plus官方文档:http://mp.baomidou.com/#/quick-starthttp://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A ...
- SpringBoot_MyBatisPlus快速入门小例子
快速入门 创建一个表 我这里随便创建了一个air空气表 idea连接Mysql数据库 点击右侧database再点击添加数据库 找到Mysql 添加用户名,密码,数据库最后点击测试 测试成功后在右侧就 ...
- 一文快速入门分库分表中间件 Sharding-JDBC (必修课)
书接上文 <一文快速入门分库分表(必修课)>,这篇拖了好长的时间,本来计划在一周前就该写完的,结果家庭内部突然人事调整,领导层进行权利交接,随之宣布我正式当爹,紧接着家庭地位滑落至第三名, ...
随机推荐
- C++ STL bitset 容器详解
C++ STL bitset 容器详解 本篇随笔讲解\(C++STL\)中\(bitset\)容器的用法及常见使用技巧. \(bitset\)容器概论 \(bitset\)容器其实就是个\(01\)串 ...
- 了解css
css指层叠样式表(Cascading Style Sheets) 1.样式定义如何显示HTML元素 2.样式通常存储在样式表中 把样式添加到HTML4.0中,是为了解决内容与表现分离的问题 外部样式 ...
- vue使用--环境搭建与基本项目创建说明
桃之夭夭,思绪纷飞. 一.环境搭建 1.安装node.js(包含包管理工具npm) 安装包可以到node官网进行下载,穿梭>>> 根据自己的操作系统下载相应版本的安装包,运行后按照操 ...
- Erlang语言基础总结
1.=操作符(模式匹配) 当看到一个表达式像X = 123时,它的意思看似“将整数123赋予变量X”,但这种解读是不 正确的.=不是一个赋值操作符,它实际上是一个模式匹配操作符.与其他函数式编程语言一 ...
- HTML+CSS基础 块级元素div分析 文档流 脱离文档流的方法
块级元素div分析 1.外边距 margin 2.内边距 padding 3.边框 border Div的真实宽度=width+margin-left+margin-right+border*2+ ...
- vue中使用better-scroll的2种方式简述
前言 better-scroll官方demo展示:https://ustbhuangyi.github.io/better-scroll/#/examples/en better-scroll官方文档 ...
- EasyUIDataGrid列标题换行显示
有时候表格标题字数太多,而宽度有限,就会导致一部分列的标题显示不出来 这时候,加入如下css代码即可将标题换行显示 .datagrid-header-row .datagrid-cell span { ...
- MongoDB官方下载安装设置配置文件指定端口号
1.)下载 官网(https://www.mongodb.com/)右上角try free 进入下载中心,下载指定版本 ZIP和MSI随便 如果浏览器下载的慢,可以直接使用下载地址,然后迅雷下 操作 ...
- Kubernetes DaemonSet(部署守护进程)
Kubernetes DaemonSet(部署守护进程) • 在每一个Node上运行一个Pod• 新加入的Node也同样会自动运行一个Pod 应用场景:Agent 官方文档:https://kuber ...
- Out,ref,params修饰符,可选参数,命名参数
out输出,在调用函数中声明,在被调用函数中赋值: ref在调用函数中赋值,后调用: params修饰符,static double CalculateAverage(params[] values) ...