MyBatis-Plus入门Demo详解

一.简介:

引用官方文档(本文主要参考官方文档示例):

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

愿景

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗中的 1P、2P,基友搭配,效率翻倍。(更多文档介绍请点击进入查看)

ZDkKjU.png

二.SpringBoot与MyBatis-plus的整合

这里我们使用SpringBoot引入依赖,当然非SpringBoot项目的引入也是一样的,为了统一,这里不做过多累述.正如官方所说,mybatis-plus在mybatis的基础上只做增强不做改变,因此其与spring的整合亦非常简单。只需把mybatis的依赖换成mybatis-plus的依赖,再把sqlSessionFactory换成mybatis-plus的即可。接下来看具体操作:

1.pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.hmoe</groupId><artifactId>mybatis-plus-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>mybatis-plus-demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><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><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--druid==>阿里巴巴数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.25</version></dependency><!--2)spring dao层依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.14.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.3.14.RELEASE</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.35</version></dependency><!--mp的依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.1.2</version></dependency><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
2.在 application.yml 配置文件中添加 H2 数据库的相关配置:
# DataSource Config
spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/test03username: rootpassword: test# Logger Config
logging:level:com.baomidou.mybatisplus.samples.quickstart: debug
3.数据库建表语句
DROP TABLE IF EXISTS user;CREATE TABLE user
(id BIGINT(20) NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT(11) NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
);DELETE FROM user;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.编写实体类 User.java(此处使用了 Lombok 简化代码)
@Data
public class User {private Long id;private String name;private Integer age;private String email;
}
5.编写Mapper类 UserMapper.java
public interface UserMapper extends BaseMapper<User> {}
6.添加测试类,进行功能测试:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SampleTest {@Autowiredprivate UserMapper userMapper;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));List<User> userList = userMapper.selectList(null);Assert.assertEquals(5, userList.size());userList.forEach(System.out::println);}}

测试结果如下:

ZDniRA.png

转载于:https://www.cnblogs.com/charlypage/p/11148113.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RHEL 5基础篇—常见系统启动类故障

常见系统启动类故障 在linux系统的启动过程中&#xff0c;涉及到MBR主引导记录、GRUB启动菜单、系统初始化配置文件inittab等各方面&#xff0c;其中任何一个环节出现故障都有可能会导致系统启动失败。因此一定要注意做好相关文件的备份工作。 1、MBR扇区故障 MBR引导记录位…

hcharts生成图表

借助hcharts插件&#xff0c;可以很方便地在模板页面中生成图表。类似插件还有echarts。 补充。。。 转载于:https://www.cnblogs.com/Forever77/p/11144346.html

css empty_何时使用:empty和:blank CSS伪选择器

css emptyI made a terrible mistake when I tweeted about :empty and :blank a while ago. I said that :empty wasn’t useful, and :blank is much more useful than :empty.不久前我在Twitter上发布:empty和:blank时&#xff0c;我犯了一个严重的错误。 我说过:empty没用&…

浙江大学计算机系统结构,高级计算机体系结构-浙江大学计算机系统结构室.pdf...

高级计算机体系结构-浙江大学计算机系统结构室高级计算机体系结构陈文智 浙江大学计算机学院chenwzzju.edu.cn2014年9月11.1 计算机技术发展综述(1)1946年: 在二次世界大战期间研制成功的世界上第一台电子计算机ENIAC(Electronic Numerical Intergrator andCalculator)正式对…

PVS 6.1 Configuring Services Failed

好久没有更新了&#xff0c;嘿嘿&#xff0c;更新一个。 项目中遇到一个问题&#xff0c;PVS安装到最后一步报错&#xff0c;如下图&#xff1a; 环境&#xff1a;PVS 6.1&#xff0c;数据库是SQL Server 2005 SP4 查了一下文档&#xff0c;PVS 6.1支持SQL Server 2005 SP4 排查…

javascript动态创建table

function createTable(parentNode,headres,datas){//创建表格var table document.createElement("table");//将表格追加到父容器中parentNode.appendChild(table);//设置table的样式table.cellSpacing 0;table.cellPadding 0;table.border "1px";//创建…

leetcode 234. 回文链表(快慢指针+链表倒置)

请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/…

面试小问题——Object中有哪些常用方法?

一、equals方法 Object类中的equals方法用于检测一个对象是否等于另外一个对象。Java语言规范要求equals方法具有下面的特性&#xff1a; &#xff08;1&#xff09;自反性&#xff1a;对于任何非空引用x&#xff0c;x.equals(x)应该返回true &#xff08;2&#xff09;对称性&…

职称计算机证书 评中级职称,软考证书如何申请评职称及职称申请流程的详细介绍...

我们很多考友参加软考。比如信息系统项目管理师和系统集成项目管理工程师考试&#xff0c;目的都是为了评职称&#xff0c;那么在拿到软考证书后&#xff0c;很多人最关心的一个问题就是关于职称评聘问题&#xff0c;今天就以软考证书如何申请评职称及职称申请流程的详细介绍&a…

播客51:妈妈可以编码的创始人埃里卡·彼得森(Erica Peterson)

On todays episode of the freeCodeCamp.org podcast, Abbey Rennemeyer chats with Erica Peterson, a founder, entrepreneur, and mother of two who lives and works in Pittsburg, Pennsylvania.在freeCodeCamp.org播客的今天节目中&#xff0c;Abbey Rennemeyer与Erica P…

leetcode 1024. 视频拼接(dp/贪心)

你将会获得一系列视频片段&#xff0c;这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠&#xff0c;也可能长度不一。 视频片段 clips[i] 都用区间进行表示&#xff1a;开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑&am…

java实现时钟方法汇总

import java.awt.Dimension; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask;import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; //第一种比较…

js中注册标识符流程

注册分为三个阶段&#xff1a;分别是注册阶段&#xff0c;函数处理阶段&#xff0c;变量处理阶段&#xff1b;这三个阶段有先后顺序的。&#xff08;注&#xff1a;这三个阶段的名字没有权威性&#xff0c;是作者为了方便记忆自己起的名字&#xff09; 注册阶段的特征 1.此时不…

jsp论坛网站模版_网站关键词优化怎么做

说到网站关键词优化&#xff0c;大多企业都很陌生&#xff0c;建站公司说的关键词优化头头是道。跟听天书似的&#xff0c;51商务网小编为大家总结的网站优化方法希望可以帮到大家&#xff0c;首先要说的是做网站优化第一点就是要有耐心&#xff0c;如果很长时间没有收录的话&a…

feature功能_利用feature-u V1释放基于功能的JS开发的强大功能

feature功能This article is an introduction to a new JS library called feature-u, that facilitates feature-based development in your React project.本文是对新的JS库(称为feature-u )的介绍&#xff0c;该库促进了React项目中基于功能的开发 。 Note: On 8/14/2018 f…

虚拟实验工场大学计算机实验报告答案,虚拟实验实验报告 - 实验报告 - 书业网.doc...

虚拟实验实验报告 - 实验报告 - 书业网虚拟实验实验报告 - 实验报告 - 书业网篇一&#xff1a;虚拟实验报告第一章 文献综述1.1 丙酮酸脱氢酶概述丙酮酸脱氢酶复合体(Pyruvate Dehydrogenase Complex)催化丙酮酸不可逆的氧化脱羧转化成乙酰辅酶A。该复合体是糖酵解的关键限速酶…

【笔记】一些linux实用函数技巧【原创】

函数返回的是函数的地址 kallsyms_lookup_name() 本文转自张昺华-sky博客园博客&#xff0c;原文链接&#xff1a;http://www.cnblogs.com/sky-heaven/p/5191491.html&#xff0c;如需转载请自行联系原作者

leetcode 845. 数组中的最长山脉

我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”&#xff1a; B.length > 3 存在 0 < i < B.length - 1 使得 B[0] < B[1] < … B[i-1] < B[i] > B[i1] > … > B[B.length - 1] &#xff08;注意&#xff1a;B 可以是 A 的任意子数组…

【Lintcode】018.Subsets II

题目&#xff1a; Given a list of numbers that may has duplicate numbers, return all possible subsets Notice Each element in a subset must be in non-descending order.The ordering between two subsets is free.The solution set must not contain duplicate subset…

多线程1

1-1 进程 程序是静止的&#xff0c;运行中的程序就是进程。进程的三个特征&#xff1a; 动态性 &#xff1a; 进程是运行中的程序&#xff0c;要动态的占用内存&#xff0c;CPU和网络等资源。独立性 &#xff1a; 进程与进程之间是相关独立的&#xff0c;彼此有自己的独立内存区…