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: ...
随机推荐
- 10. 选主算法、多版本兼容性及滚动升级 | 深入浅出MGR
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 选主算法 2. 多版本兼容性 3. MGR 5.7滚动升级至8.0 4. 小结 参考资料.文档 免责声明 文章 ...
- Spring源码 04 IOC XML方式
参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...
- MySQL 数据查询语句
一般查询 字段取别名 别名不用加单引号,as 可省略. select t.id ID, t.name 名称 from grade t; 拼接字符串 concat(a, b) select concat ...
- C# 创建标签PDF文件
Q1:关于"标签PDF文件(Tagged PDF)" 标签PDF文件包含描述文档结构和各种文档元素顺序的元数据,是一种包含后端提供的可访问标记,管理阅读顺序和文档内容表示的逻辑结构 ...
- 熔断器-Hystrix。。。之降级方法
与Feign的Fallback降级方法不同,这个hystrix降级方法是写在被调用方的 需要依赖: <dependency> <groupId>org.springframew ...
- CF-1623C
Problem - 1623C - Codeforces 题意: 给出一个序列,从第三个数字开始,你可以让他减少3*d,然后让它的前两个数字,分别加2*d,和d,找出序列中的最小值的最大值. 题解: ...
- ClickHouse(05)ClickHouse数据类型详解
ClickHouse属于分析型数据库,ClickHouse提供了许多数据类型,它们可以划分为基础类型.复合类型和特殊类型.其中基础类型使ClickHouse具备了描述数据的基本能力,而另外两种类型则使 ...
- KingbaseES 中 JSON 介绍
KingbaseES支持JSON和JSONB.这两种类型在使用上几乎完全一致,主要区别是 JSON类型把输入的数据原封不动的存放到数据库中.JSONB类型在存放时把JSON解析成二进制格式. JSON ...
- P8539 「Wdoi-2」来自地上的支援 题解
思路 根据题意,如果每次询问选中的为第 \(x\) 个数,那么前 \(x-1\) 次操作一定不会选中第 \(x\) 个数.(感觉在说废话.) 同样,因为第 \(x\) 个数必须被选中 \(k\) 次, ...
- thinkphp5.1中适配百度富文本编辑器ueditor
百度富文本编辑器ueditor虽然很老,但是功能齐全,我近期需要能批量粘贴图片的功能,但是找不到,很无奈.然后现在就分享一下如何把ueditor适配到thinkphp5.1,有知道如何批量上传图片的艾 ...