mybatisPlus在Springboot中的使用
文章目录
- 官方地址:http://mp.baomidou.com
- 代码发布地址:Gitee:https://gitee.com/baomidou/mybatis-plus
- 文档发布地址:https://baomidou.com/pages/24112f
1、简介

2、支持的数据库

3、框架

4、创建一个springboot项目
目录结构:

4.1 、pom文件中加入依赖
<!-- mybatisPlus的依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- lombox的依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- mysql的依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
这里可能会出现的问题:编译打包不成功(修改版本)。
解决方法如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--在这里修改版本-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
</plugin>
<!---->
</plugins>
</build>
4.2、yml文件的配置
spring:
# 配置数据源信息
datasource:
# 配置数据源类型
type: com.zaxxer.hikari.HikariDataSource
# 配置连接数据库的各个信息
username: root
password: root
url: jdbc:mysql://localhost:3306/mybatis_plus?allowMultiQueries=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
server:
port: 8383
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
4.3 、数据库脚本
创建数据库和表
CREATE DATABASE `mybatis_plus` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
use `mybatis_plus`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表中插入数据
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
4.4、实体类
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
4.5 、启动类添加包扫描
@SpringBootApplication
//扫描mapper接口所在的包
@MapperScan("com.zyz.mybatisplus.mapper")
public class MybatisplusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisplusApplication.class, args);
}
}
4.6、 mapper包下的UserMapper接口
@Repository
public interface UserMapper extends BaseMapper<User> {
}
4.7、 测试mybatisplus
@SpringBootTest
public class MyBatisPlusTest {
@Autowired
private UserMapper userMapper;
// @Test
// public void testSelectList() {
//
// List<User> list = userMapper.selectList(null);
// list.forEach(System.out::println);
//
// }
// 测试增加
@Test
public void testAdd(){
//实现用户新增
//INSERT INTO user ( id, name, age, email ) VALUES ( ?, ?, ?, ? )
User user = new User();
// user.setId(5L);
user.setName("张三");
user.setAge(23);
user.setEmail("zhangsan@qq.com");
int rs = userMapper.insert(user);
System.out.println("测试结果:"+rs);
System.out.println(user.getId());
}
@Test
public void testDelete(){
/**
* 1、根据id删除信息
* DELETE FROM user WHERE id=?
*/
int rs = userMapper.deleteById(5L);
System.out.println(rs);
/**
* 2、根据map集合中所设置的条件删除用户信息
* DELETE FROM user WHERE name = ? AND age = ?
*/
// HashMap<String, Object> map = new HashMap<>();
// map.put("name","张三");
// map.put("age",23);
// int rs = userMapper.deleteByMap(map);
// System.out.println(rs);
/**
* 通过多个id实现批量删除
* DELETE FROM user WHERE id IN ( ? , ? , ? )
*/
// List<Long> list = Arrays.asList(1L,2L,3L);
// int rs = userMapper.deleteBatchIds(list);
// System.out.println(rs);
}
@Test
public void testUpdate(){
/**
* 修改用户信息
* UPDATE user SET name=?, email=? WHERE id=?
*/
User user = new User();
user.setId(4L);
user.setName("李四");
user.setEmail("lisi@qq.com");
int rs = userMapper.updateById(user);
System.out.println(rs);
}
@Test
public void testSelect(){
/**
* 通过id查询用户信息
* SELECT id,name,age,email FROM user WHERE id=?
*/
// User user = userMapper.selectById(4L);
// System.out.println(user);
/**
* 根据id批量查询用户信息
* SELECT id,name,age,email FROM user WHERE id IN ( ? , ? )
*/
// List<Long> list = Arrays.asList(4L,5L);
// List<User> users = userMapper.selectBatchIds(list);
// users.forEach(System.out::println);
/**
* 根据条件查询用户信息
* SELECT id,name,age,email FROM user WHERE name = ? AND age = ?
*/
// Map<String,Object> map = new HashMap<>();
// map.put("name","李四");
// map.put("age",21);
// List<User> users = userMapper.selectByMap(map);
// users.forEach(System.out::println);
//自定义sql语句查询用户信息
Map<String,Object> map = userMapper.selectMapById(1L);
System.out.println(map);
}
}
mybatisPlus在Springboot中的使用的更多相关文章
- SpringBoot中的自动代码生成 - 基于Mybatis-Plus
作者:汤圆 个人博客:javalover.cc 前言 大家好啊,我是汤圆,今天给大家带来的是<SpringBoot中的自动代码生成 - 基于Mybatis-Plus>,希望对大家有帮助,谢 ...
- springboot中使用mybatisplus自带插件实现分页
springboot中使用mybatisplus自带插件实现分页 1.导入mybatisplus分页依赖 <dependency> <groupId>com.baomidou& ...
- Mybatis-plus<一> Springboot框架使用MybatisPlus代码自动生成器
Mybatis-plus<一> Springboot框架使用MybatisPlus代码自动生成器 Mybatis-plus官网: https://mp.baomidou.com/ Demo ...
- SpringBoot中yaml配置对象
转载请在页首注明作者与出处 一:前言 YAML可以代替传统的xx.properties文件,但是它支持声明map,数组,list,字符串,boolean值,数值,NULL,日期,基本满足开发过程中的所 ...
- 如何在SpringBoot中使用JSP ?但强烈不推荐,果断改Themeleaf吧
做WEB项目,一定都用过JSP这个大牌.Spring MVC里面也可以很方便的将JSP与一个View关联起来,使用还是非常方便的.当你从一个传统的Spring MVC项目转入一个Spring Boot ...
- springboot中swaggerUI的使用
demo地址:demo-swagger-springboot springboot中swaggerUI的使用 1.pom文件中添加swagger依赖 2.从github项目中下载swaggerUI 然 ...
- spring-boot+mybatis开发实战:如何在spring-boot中使用myabtis持久层框架
前言: 本项目基于maven构建,使用mybatis-spring-boot作为spring-boot项目的持久层框架 spring-boot中使用mybatis持久层框架与原spring项目使用方式 ...
- 由浅入深学习springboot中使用redis
很多时候,我们会在springboot中配置redis,但是就那么几个配置就配好了,没办法知道为什么,这里就详细的讲解一下 这里假设已经成功创建了一个springboot项目. redis连接工厂类 ...
- Springboot中使用AOP统一处理Web请求日志
title: Springboot中使用AOP统一处理Web请求日志 date: 2017-04-26 16:30:48 tags: ['Spring Boot','AOP'] categories: ...
随机推荐
- UnifyRemoteManager-多国语言绿色版v1.3-20200315,统一远程连接自动登录软件,欢迎测试
UnifyRemoteManager-多国语言绿色版v1.3-20200315,统一远程连接自动登录软件,欢迎测试 下载参考: 百度网盘:https://pan.baidu.com/s/15g-oXT ...
- Git 04 项目搭建
参考源 https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0 版本 本文章基于 Git 2.35.1.2 创建工作目录 ...
- (防坑)Alphafold 非docker 安装指南
本指南适用于Linux系统.Alphafold官方也强调尽量使用Linux系统!官方提供了docker版安装步骤. Alphafold简介: 强大的蛋白质结构预测. 开源地址:https://gith ...
- java学习第一天.day06
方法 方法的优点 1. 使程序变得更简短而清晰. 2. 有利于程序维护. 3. 可以提高程序开发的效率. 4. 提高了代码的重用性. static的作用 static在方法中如果没有添加就只能用对象调 ...
- Flutter 实战(一):列表项内容可自定义的列表组件
前言 本篇文的目的是熟练掌握 Flutter 组件的封装,并且使用回调函数实现主要功能. 本组件的设计灵感来源于 Element 组件库的 table 组件. 正题 定义回调函数 在此之前,必须要了解 ...
- Miller Rabbin 算法—费马定理+二次探测+随机数 (讲解+例题:FZU1649 Prime number or not)
0.引入 那年,机房里来了个新教练, 口胡鼻祖lhy 第一节课,带我们体验了暴力的神奇, 第二节课,带我们体验了随机数的玄妙, -- 那节课,便是我第一次接触到Miller Rabbin算法, 直到现 ...
- PHP一句话简单免杀
PHP一句话简单免杀 原型 几种已经开源的免杀思路 拆解合并 <?php $ch = explode(".","hello.ev.world.a.l"); ...
- 做自动化测试选择Python还是Java?
你好,我是测试蔡坨坨. 今天,我们来聊一聊测试人员想要进阶,想要做自动化测试,甚至测试开发,如何选择编程语言. 前言 自动化测试,这几年行业内的热词,也是测试人员进阶的必备技能,更是软件测试未来发展的 ...
- 第九十二篇:Vue 自定义指令
好家伙, 1.什么是自定义指令? vue官方提供了v-text,v-for,v-model,v-if等常用的指令.除此之外vue还允许开发者自定义指令. 2.自定义指令的分类 vue中的自定义指令分为 ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...