【MyBatis-Plus】简介 入门案例
?? 博客主页:
?? 00年出生,即将进入职场闯荡,目标赚钱,可能会有人觉得我格局小、觉得俗,但不得不承认这个世界已经不再是以一条线来分割的平面,而是围绕财富旋转的球面,成为有钱人不是为了去掌控球体的转向,而是当有人恶意掌控时,努力保护好家人和自己。
MyBatis-Plus
- 一、MyBatis-Plus 简介
- 二、入门案例
- 1、创建数据库表
- 2、创建项目
- 3、创建 User 实体类
- 4、配置数据库信息
- 5、编写数据访问层 UserMapper
- 6、测试
一、MyBatis-Plus 简介
- Mybatis-Plus(简称 MP )是基于 MyBatis 框架基础上开发的增强型工具,旨在简化开发、提供效率。简化开发、提供效率 是它的优势也是目的。
- 对于 Mybatis-Plus 相关内容的学习,我们可以在 官网 中查看,这个官网我认为还是非常友好的,因为它是中文形式的,就相当于给我们提供了一个学习笔记,方便使用。
二、入门案例
1、创建数据库表
2、创建项目
- 我创建项目使用的是阿里云的网址方式(因为我在联网情况下也无法使用 spring 官方的网址创建),在选择依赖时选中 MySQL 连接驱动和 MyBatis Plus 依赖。之后按照创建 SpringBoot 项目的方式创建即可,如果不了解如何创建的,可以移步到 【SpringBoot】快速入门 文章查看。
- 创建完项目后,我们可以看看都自动为我们导入了哪些依赖,重点看一下 mybatis-plus 的启动依赖。发现里面不光导了和 mybatis-plus 的相关依赖,还导入了 mybatis 以及 mybatis 和 spring 整合包,这也是体现了 MyBatis-Plus 是基于 MyBatis 框架基础上开发的增强型工具。
3、创建 User 实体类
在编写实体类代码之前,为了简化开发,在此介绍一个工具 —— lombok。Lombok 是一个Java类库,提供了一组注解,用于简化 POJO 实体类开发,使用该工具,我们就无需再书写 setter 和 getter 方法,toString 方法,构造器方法 …
使用之前我们需要先导入 lombok 的依赖包。
org.projectlombok lombok
使用 lombok 简化开发的方式定义 User 实体类。
@Setter // 添加 setter 方法
@Getter // 添加 getter 方法
@ToString // 添加 toString 方法
@EqualsAndHashCode // 添加 equals 和 hashCode 方法
@NoArgsConstructor // 添加无参构造器
@AllArgsConstructor // 添加全参构造器
public class User {
private Integer id;
private String username;
private Integer age;
private String password;
}通过使用一些注解,来代替之前的书写方式,这样也使得实体类看着更整洁一些,但是每次实体类前面都得写这么多的注解,总会觉得有些麻烦,有没有一种更简单的方式呢?答案当时是肯定的,技术的每一次进步都是为了让我们能够更轻松的开发(也正是因为开发过程中想懒省事,在不断的推动技术的进步)。
使用一个 @Data 注解替代上述全部注解,在之后的开发过程中,定义实体类时就可以使用该方式简化开发,非常的方便。
@Data
public class User {
private Integer id;
private String username;
private Integer age;
private String password;
}
4、配置数据库信息
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssmusername: rootpassword: 123456
- 以上是我的数据库信息,你们需要换成自己的。
5、编写数据访问层 UserMapper
只需要定义一个 UserMapper 接口使其继承 BaseMapper,并使用泛型将 User 传入。
之后其他所有的方法都无需定义,因为 BaseMapper 中已经定义了许多常用的 CRUD 方法。
@Mapper
public interface UserMapper extends BaseMapper {
}
6、测试
在此只是为了测试能否成功调用到相应的方法,所以不再定义业务逻辑层,表示层等等。
明明 UserMapper 中并没有定义这些方法,为了可以调用呢?这是因为 BaseMapper 中定义了这些方法,我们可以直接拿过来用。
简单测试以下根据 ID 查询方法。
@SpringBootTest
class MybatisplusApplicationTests {
@Autowired
private UserMapper userMapper;@Test void testSelectById() {User user = userMapper.selectById(1);System.out.println(user); }
}
运行之后惊奇的发现,竟然查出结果了。
通过这个入门案例,也告诉了我们 MyBatis-Plus 的强大之处,又替我们做了许多事情,这也是为什么慢慢的人们更喜欢使用 MyBatis-Plus 的原因。
?? 以上就是文章的全部内容啦,诸佬如果有任何建议都可以提哦。
?? 创作不易,如果觉得对您有帮助的话,欢迎关注点赞??收藏??哦。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
【MyBatis-Plus】简介 入门案例相关推荐
- MyBatis-学习笔记02【02.Mybatis入门案例】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- MyBatis Plus简介和入门案例
简介 MyBatis-Plus(以下简称MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 润物无声 只做增强不做改变,引入它不会对现有 ...
- MyBatis由浅入深学习总结之一:MyBatis入门案例
一.MyBatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...
- mybatis基于注解的入门案例
mybatis基于注解的入门案例: 把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句 同时需要在SqlMa ...
- Spring-Security 简介、入门案例详解、安全框架、权限验证 SSM项目 使用 JavaConfig配置
Spring-Security 简介 一.介绍 二.详细步骤 1.创建一个maven项目 添加web 框架. 2.导入依赖 3.项目整体结构 4.Spring 容器配置 5.servletContex ...
- Mybatis学习IDEA(1)-环境搭建以及入门案例
Mybatis的环境搭建: 第一步:创建Maven项目 new Project->Maven->next->GroupId(反写域名如:com.itheima)ArtifactID( ...
- CXF使用教程(一)——简介以及入门案例
一.简介 Apache CXF是一个开源的Service框架,可以用于简化用户的service开发,基于CXF开发的应用可提供SOAP.XML/HTTP.RESTFUL HTTP或CORBA等服务.C ...
- (spingboot入门案例)SpingBoot整合mybatis(mySql)
仅供参考 目录结构: 环境: idea,mysql(8.0.29) 1.新建项目 1. 2.Project SDK选择自己对应的java版本 url选第二个,使用阿里的镜像:http://start. ...
- StreamSets简介和入门案例
目录 一.Streamsets简介 二.安装步骤 2.1 Java环境 2.2 打开文件数 三.入门案例 3.1 本地文件解析到HDFS 1. 数据流的整体设计 2.管道流的具体设计步骤 3.2 My ...
最新文章
- EF 批量 添加 修改 删除
- Ambari在离线环境中安装Hadoop集群
- 详解 Vue Vuex 实践
- OpenAI魔改大模型,参数减少100倍!13亿参数InstructGPT碾压GPT-3
- linux变量中代,linux中shell变量$#,$@,$0,$1,$2和变量${0%/*}
- TCP/IP(二):IP协议
- 前端学习(715):数组新增元素
- pycharm无缘无故打开Nosetest
- (六)Docker简介
- winfrom下,如何实现类似QQ右下角弹出新闻
- linux查看都哪口状态,linux c 查看网口状态
- python学习笔记 day33 ftp大作业(未完成)
- 【论文】PathQG: 基于事实的神经问题生成
- 11. CSS 文本属性
- windows10如何截长图
- 数字黑洞java_java实现数字黑洞
- 真人qq秀代码_关于QQ我的记忆
- oracle auto failover,dg设置auto failover
- html实现粘性页脚
- 源代码 格式化 php,CoolFormat源代码格式化工具
热门文章
- oracle增量恢复dg备库,rman增量恢复DG备库出现GAP的情况
- Arcgis自定义符号库
- Screen使用总结
- Coronary Artery Segmentation, A Review
- 在Windows10上通过Virtualbox安装Ubuntu操作系统教程
- 关于在VS2022或者高级版本运行环境下遇到fopen,strerror等不安全的问题
- PowerSync 包尔星克 (群加) 对拷线/共享线连不上
- Tensorflow-GPU环境配置
- nodemcu c语言开发,nodemcu连接到中移onenet平台
- ESP8266 NodeMCU引脚说明