Mybatis-Plus的笔记

Mybatis-Plus其实是Mybatis的升级版,他简化了原先mybatis需要手动写CURD语句转而继承BaseMapper来实现。具体变化如下:

1,MyBatis-Plus简介:MP,是mybatis的增强工具,是基于mybatis上开发的。

特点:

Maven坐标:

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version>
</dependency>

配置文件:

<?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 https://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.5.0</version><relativePath/></parent><groupId>com.itheima</groupId><artifactId>mp-demo</artifactId><version>0.0.1-SNAPSHOT</version><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></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><version>1.18.12</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

配置数据源:

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTCusername: rootpassword: root
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启mp日志,将sql输出到控制台

2,CURD接口

我们只需要直接调用就好了:在ymi文件中加入

3,常用注解

@TableName()用来指定当前类对应的数据库的表名

@TableFile()用来指定当前属性在数据库表中对应的字段

@TableId()用来指定当前属性为数据库表中的主键

示例:

public class User {@TableId(type = IdType.AUTO) //当前id属性和表的主键字段id对应,并且设置主键生成策略为AUTOprivate Long id;
}

4,条件构造器(MyBatis-Plus的特色)

我们一般常用:QueryWrapper,UpdateWrapper和LembdaQueryWrapper,LembdaUpdateWrapper两组条件构造器来进行查询语句的构造和修改语句的构造

5,扩展功能

(1)逻辑删除

(2)MP对于Service层的支持

我们只需要在XXService接口上继承IService和XXServiceImpl接口上继承ServiceImpl<使用的Mapper, 插入的实体(XX)>

在业务实现类中可以调用 ServiceImpl 中的 getBaseMapper 方法获得对应的mapper对象

(3)代码生成器

在生成器中我们一般使用了生成代码之后还需要做一定的修改,比如生成器中生成的代码并没有给mapper加入@Mapper注解,还有需要注意的是在生成的实体类中可能主键生成的方法我们在配置文件中有设置,此时我们需要把实体类中的@TableId(type = IdType.AUTO)中括号里面的给注释掉,从而实现我们使用自己的设置

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

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

相关文章

智驾未来,一触即达——探索全新加油App的无限可能

一、引言 随着科技的飞速发展&#xff0c;智能出行已成为现代生活的重要组成部分。为了满足广大驾驶者的需求&#xff0c;我们倾力打造了一款全新的加油App&#xff0c;旨在为您的驾驶旅程提供前所未有的便捷与智能体验。 二、产品概述 我们的加油App不仅是一款导航工具&…

windows如何看是否支持多核并行

在Windows中查看是否支持多核并行处理&#xff0c;可以通过以下几种方法&#xff1a; 使用任务管理器&#xff1a; 右键点击任务栏空白处选择“任务管理器”。 切换到“性能”标签页。 查看“处理器”一栏&#xff0c;如果看到多个处理器核心&#xff0c;并且每个核心旁边显…

每日一道算法题 有效括号序列

题目 有效括号序列_牛客题霸_牛客网 (nowcoder.com) Python 1长度必须为偶数 2就像开心消消乐一样&#xff0c;一左一右就消掉。 class Solution:def isValid(self , s: str) -> bool:# write code here# flag[(),{},[]]# for _ in range(len(s)//2):# for i in fl…

以HMO模式为核心,平安健康稳健前行

自2014年成立以来&#xff0c;平安健康始终聚焦解决“看病难、看病贵、看病远”的痛点&#xff0c;通过科技手段优化医疗服务流程&#xff0c;降低用户就医成本。经过数年的耕耘&#xff0c;平安健康已成功转型为一站式健康管理平台&#xff0c;打通了医疗、药品、康复等多个环…

力扣每日一题 6/27 字符串 贪心

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2734.执行子串操作后的字典序最小字符串【中等】 题目&#xff1a; 给你一…

Java中的异常处理:Checked与Unchecked的区别

Java中的异常处理&#xff1a;Checked与Unchecked的区别 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 异常处理概述 在Java编程中&#xff0c;异常处理是一…

MySQL定位CPU利用率过高的SQL方法

前言 当mysql CPU告警利用率过高的时候&#xff0c;我们应该怎么定位是哪些SQL导致的呢&#xff0c;本文将介绍一下定位的方法。 本文所使用的方法&#xff0c;前提是你可以登录到Mysql所在的服务器&#xff0c;执行命令查看进程&#xff0c;当然让数据库管理员登录执行也可以…

科研所文件数据很关键,外发图纸如何控制?

图纸是科研所整个科研周期中最重要的资料类型之一。这些图纸主要用于描述和记录研究过程中的各种设计、实验装置、设备或产品原型等。 首先&#xff0c;科研所在进行新技术、新产品或新方法的研发时&#xff0c;通常需要进行详细的设计和规划。在这个过程中&#xff0c;科研人员…

小区物业管理收费系统源码小程序

便捷、透明、智能化的新体验 一款基于FastAdminUniApp开发的一款物业收费管理小程序。包含房产管理、收费标准、家属管理、抄表管理、在线缴费、业主公告、统计报表、业主投票、可视化大屏等功能。为物业量身打造的小区收费管理系统&#xff0c;贴合物业工作场景&#xff0c;轻…

怎样求解一个系统的稳态输出

要求解一个系统的稳态输出&#xff0c;需要根据系统的类型&#xff08;如线性时不变系统、非线性系统等&#xff09;、输入信号的性质&#xff08;如阶跃信号、正弦信号等&#xff09;以及系统的描述方法&#xff08;如微分方程、状态空间模型等&#xff09;。这里主要介绍线性…

数字黄金 vs 全球计算机:比特币与以太坊现货 ETF 对比

撰文&#xff1a;Andrew Kang 编译&#xff1a;J1N&#xff0c;Techub News 本文来源香港Web3媒体&#xff1a;Techub News 比特币现货 ETF 的通过为许多新买家打开了进入加密货币市场的大门&#xff0c;让他们可以在投资组合中配置比特币。但以太坊现货 ETF 的通过&#xf…

AI从业者怎么做Science?清华大学AIR周浩:从文本生成到蛋白质设计的跨界探索

近日&#xff0c;北京智源大会「AI for Science」分论坛上&#xff0c;清华大学智能产业研究院副研究员周浩以「面向科学发现的生成式人工智能」为主题展开演讲&#xff0c; HyperAI超神经在不违原意的前提下&#xff0c;对周浩教授的深度分享进行了整理汇总。 周浩教授演讲现场…

远程过程调用(RPC)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

数字AI化银行数字化转型实战手册银行数字化转型大客户营销销售讲师培训师唐兴通谈存量客户理财金融科技与场景化

推动银行数字化转型的五个关键因素 推动银行数字化转型的五个关键因素&#xff1a; 客户体验。为客户提供便利和个性化是数字化转型的关键因素。银行应开发和实施创新的数字渠道&#xff0c;例如移动应用程序、网上银行、聊天机器人等&#xff0c;以方便获取金融服务并提高客户…

基于yolo的物体识别坐标转换

一、模型简介: 1.1、小孔成像模型简图如下:不考虑实际相机中存在的场曲、畸变等问题 相对关系为: 为了表述与研究的方便,我们将像面至于小孔之前,且到小孔的距离仍然是焦距f,这样的模型与原来的小孔模型是等价的 相对关系为: 二、坐标系简介: **世界坐标系(world coo…

2021-2024高校毕业生的就业趋势和变化分析

一、不同行业、地区和学历层次的高校毕业生就业情况差异 行业差异&#xff1a; 教育培训行业&#xff1a;受“双减”政策影响&#xff0c;教育培训机构吸纳毕业生的数量明显下降&#xff0c;毕业生面临重新选择。互联网领域&#xff1a;互联网企业的业务优化调整力度加大&…

彻底解决 macos中chrome应用程序 的 无法更新 Chrome 弹窗提示 mac自定义参数启动 chrome.app

mac系统中的chrome app应用在每次打开是都会提示一个 “无法更新 Chrome Chrome 无法更新至最新版本&#xff0c;因此您未能获得最新的功能和安全修复程序。” &#xff0c; 然而最新的chrome 程序似乎在某些情况下居然会出现 输入和显示不一致的情况&#xff0c;暂时不想升…

You编程__封装ElementPlus通用组件(会持续更新...)

YOU编程__封装ElementPlus通用组件&#xff08;会持续更新…&#xff09; 1、通用表格组件 CommonTable.vue <template><div><el-form :model"query" inline class"query-form"><el-form-item><el-input v-model"query…

htmlcss面试题总结

网络中使用最多的图片格式有哪些 jpg, png, svg,webp,bmp; 请简述css盒子模型 盒子模型是指html的每个元素都像一个盒子&#xff0c;可以设置宽高&#xff0c;主要由content box&#xff0c;padding box&#xff0c;border&#xff0c; 和margin组成 视频/音频标签的使用 …

js栈的队列

// 定义 Queue 类 class Queue {constructor() {// 使用两个栈来模拟队列this.stack1 [];this.stack2 [];}// 入队操作&#xff0c;将元素添加到队列末尾enqueue(element) {// 将 stack1 中的元素移到 stack2while (this.stack1.length > 0) {this.stack2.push(this.stack…