在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:
mybatis-plus超详细讲解
?Handsome? 于 2020-03-27 12:45:58 发布 169519 收藏 2345
mybatis-plus
- 本文笔记都是观看狂神老师视频手敲的,敲完的时候发现一件挺奔溃的事,视频地址:https://www.bilibili.com/video/BV17E411N7KN视频地址 如何在 Binarium 存钱
- 这个老师讲课真的很好,学java后端的都可以去看一下,从基础到架构很详细,推荐给大家https://space.bilibili.com/95256449/狂神说
- 最近做项目听到老师讲到使用mybatis-plus,刚好狂神更新了mybatis-plus视频,简直天助我也,学完不要太震惊,真的牛逼,从此CURD告别写sql。
- 本人也还是小白一名,下面文章大部分是手敲和官网复制,没有运行过,可能会有一些错误,字母符号什么的,如果要复制注意一下。
- 看这篇文章需要掌握点mysql,mybatis,springboot,狂神老师那都有对应的视频,可以去看看,我也要去看看sql的基础知识了,上学期的SQL差点挂了,看完我会把笔记再发到博客,关注我哦!!!
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 如何在 Binarium 存钱 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
- 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
- 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
- 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
- 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
- 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 如何在 Binarium 存钱 生成器 - Sequence),可自由配置,完美解决主键问题
- 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 如何在 Binarium 存钱 如何在 Binarium 存钱 Model 类即可进行强大的 CRUD 操作
- 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
- 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 如何在 Binarium 存钱 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
- 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
- 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
- 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
- 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
支持数据库
- mysql 、 mariadb 、 oracle 、 db2 、 h2 、 hsql 、 sqlite 、 postgresql 、 sqlserver
- 达梦数据库 、 虚谷数据库 如何在 Binarium 存钱 、 人大金仓数据库
我们将通过一个简单的 Demo 来阐述 MyBatis-Plus 的强大功能,在此之前,我们假设您已经:
- 拥有 Java 开发环境以及相应 IDE
- 熟悉 Spring Boot
- 熟悉 Maven
1、创建数据库 mybatis_plus
现有一张 User 表,其表结构如下:
id | name | age | |
---|---|---|---|
1 | Jone | 18 | [email protected] |
2 | Jack | 20 | [email protected] |
3 | Tom | 28 | [email protected] |
4 | Sandy | 21 | [email protected] |
5 | Billie | 24 | [email protected] |
其对应的数据库 Schema 脚本如下:
其对应的数据库 Data 脚本如下:
2、导入相应的依赖
3、连接数据库
4、编写代码
使用 mybatis-plus 之后
编写实体类 User.java (此处使用了 Lombok 简化代码)
在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:
UserMapper 中的 selectList() 方法的参数为 MP 内置的条件封装器 Wrapper ,所以不填写就是无任何条件
通过以上几个简单的步骤,我们就实现了 User 表的 CRUD 功能,甚至连 XML 文件都不用编写!
从以上步骤中,我们可以看到集成 MyBatis-Plus 非常的简单,只需要引入 starter 工程,并配置 mapper 扫描路径即可。
但 MyBatis-Plus 的强大远不止这些功能,想要详细了解 MyBatis-Plus 的强大功能?那就继续往下看吧!
CRUD扩展
Insert 插入
类型 | 参数名 | 描述 |
---|---|---|
T | entity | 实体对象 |
举例测试
主键生成策略
SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的。
如何在新加坡办理银行卡?
1. 申请人通常需要提交一份填写完整的申请表,同时出示身份证/护照、工作准证、学生签证以及新加坡有效地址。(有效地址可以是水电费账单、电话账单或者租约等能证明你住在此处的文件)
2. 存款最低限额每家银行也不尽相同(一般是$500—$3000不等)。若开户后存款未达到最低限额,银行每月会收取管理费(通常是$2)。
比如,若以开户最低限额$500为例,开户后账户内最低余额不得低于$500。如果账户款额低于$500且满一个月后,银行会每月自动从该账户余额中扣除罚款$2,直到扣完为止。另外,如果你的账户余额为零,不够支付罚款金额时,有的银行会相对应地进行几十新元的罚款。所以,同学们在办理银行卡时需要注意每个银行的条例,避免不必要的损失。
3. 办理活期存款账户,客户会收到一个活期储蓄本、一张 ATM 卡以及一个网上银行专用的 PIN 码(如需要)。
4. 如果你是持学生签证,但若学生证还未办好,可提供学来自学校的信件(仅限于私立教育委员会或教育部管辖的教育机构或学校的正式函件)。
若你是刚到新加坡,没有收入,不能申请信用卡。
持有S-pass,Employment Pass,PR以及公民在满足一定薪水要求的情况下才可以办理信用卡。
不过,国内银行的信用卡在新加坡也是可以使用的。很多地方都可以接受银联消费或者Visa、Master。
DBS,新加坡最大的银行。开户需要存最低500元新币,不过开完户后可以取走。
若是使用的 Savings Plus, 每个月的平均余额(每天的余额加起来除以天数)低于500元新币,则会扣月管理费2元新币。此时把账户换成 Remix eSavings Plus 就不用扣除月管理费了,不受最低限额限制。
DBS还算得上是实惠的账户,0.05%年利(是的,不要惊讶),无任何其他杂费,不过只有16-29岁的公民或PR或Student Pass持有者可以申请。
DBS和POSB的提款机是共享的,不过在这个银行开户的人很多,所以网点和ATM经常排队。DBS银行卡被广大朋友称为最方便,最容易操作的银行卡之一,因此它最为受欢迎。在坡县的朋友们,以下这种卡最为普及,是众多朋友的首选。
DBS专线:1800 111 1111
OCBC是新加坡历史最悠久的银行,创立于中华民国元年。为了对抗DBS和POSB的合并,OCBC和UOB也通过共享ATM来增加布局数量,不过他俩在对方ATM上只能取现不能转账,每月头两次免费,第三次起每次0.3新。
OCBC的最大好处是营业时间长,部分网点周末照常营业,最迟的晚上7点才关门。另外它和NTUC(新加坡最常见超市品牌Fairprice的拥有者)合作,推出的Plus! Savings Account+Plus! Visa Debit Card组合,非常厚道。
开户要求:1000新币开户,同样可以取走。
月平均余额也是要求有1000元新币以上,否则每月2元新币管理费。OCBC的取款机和分行会比 DBS 少一点,不过持卡人也会比较少,不用怎么排队。基本上很少会有刚来的同学注意到并办理这张卡,而实际上,这张却是全岛最实惠的。
OCBC 专线:1800 363 3333
年龄要求:18岁及以上
每个月户头必须有: $500 新币 (如果没有达到 $500,每个月将扣$2)
所需文件:护照,工作准证,水电单或者电话单(任何文件可以证明住家地址)皆可
UOB 专线: 1800 222 2121
“扬帆狮城”新加坡留学账户
这是一个新元储蓄账户,类似于中国境内的活期账户,配有一本存折和一张银行ATM提款卡,可随时存取款。在账户申请获得批准后,可通过提交新加坡分行提供的客户参考号,办理汇款,从而避免携带过多现金旅行带来的不便和风险。
这类账户有三大优势:
留学生前往中国银行新加坡分行激活账户时,将免费获赠欢迎礼品。
本账户提供提款卡、网上银行服务,免收小额账户管理费,且没有最低存款余额要求,方便留学生操作账户。
本账户免收汇入汇款手续费,方便家长随时为海外子女提供资金支持。
赴新加坡留学生见证账户
留学生见证账户属于一种活期存款账户,在新加坡称为“Savings Account”,同时又可统称为“Demand Deposits”。该类账户一般利息较低,如果客户想选择利息较高的账户存款,可以选择利率较高的定期存款或定期特惠存款。
1. 在国内行申请,填写相关表格并递交相关申请文件;
2. 国内受理申请分支机构将见证及审核您的护照、身份证/户口簿、有效签证、录取通知书及其他相关文件的原件;
3. 国内受理机构将材料交予中国银行有限公司新加坡分行进一步审核,2-3个工作日(中新双方)后,中国银行有限公司新加坡分行将通知客户最终开户结果,如审核通过客户将会收到账号及相关汇款资料;
4. 如需向中国银行有限公司新加坡分行账户汇款,请携带账号及相关汇款资料并前往受理网点办理汇款手续即可。
热线电话:18006695566
中国银联卡。很多中小学生前来新加坡读AEIS课程,而这些学生很多没有年满16周岁,办理不了本地银行卡,那怎么办呢?
这时候不得不说我们中国银联在新加坡的影响力是巨大的。目前新加坡不论大ATM还是小atm的提款机,都有着银联标志,这表示所有国内银联卡都可以在新加坡提款机上提取现金。每天限额2000新币,每笔手续费在0-12人民币之间,汇率则按照当天汇率及时转换,非常非常方便。
感觉甚至比新加坡本地银行卡更加方便快捷。首先免去了开户的烦恼。另外,留学生通常会从国内携带人民币现金入境,再去牛车水讨价还价换钱,然后再存到自己新加坡账户,每一步都战战兢兢。而此时如若用银联卡取现,岂不是非常方便。
CIBC GIC详细申请及付款流程--
3. 点击student information 进入下一步。根据表格中的带星号的内容填写你相关的信息。重点来了---拉到页面最下面有个 Referral Details,第一个how did you hear about us?随便填写,第二个Are you applying through the Referral Program?一定要选择Yes,并且在Email Address of Referrer填写:[email protected]。这样你的账户里就会有25加币的返现,当然我也会有嘻嘻~~。麻烦各位小伙伴在填写这里的把我的邮箱加上去哈。
3. 然后就可以到手机银行换汇准备汇款了。建议汇10200加元,因为会有一个汇款手续费的问题,我用的是建行手机银行,汇款的手续费是两边各付各的,如果正好汇10150的话,那么最后到账的金额会小于10000加币,这点各位小伙伴要注意了。
感谢评论区的热心小伙伴提醒,文章开头关于申请gic的条件我写的不是很清楚。
申请SDS需要有gic资金担保,但是如果只为了申请gic不走SDS项目的话并不需要语言及交满一年学费的要求。如何知道自己是否符合SDS项目要求,可以参考文章开始的移民局网站链接。
MATLAB App Designer教程连载1:如何使用App Designer进行的简单的GUI设计
All comments and opinions expressed on Zhihu are mine alone and do not necessarily reflect those of my employers, past or present.
使用App Designer的条件是什么
Mathworks在R2016a中正式推出了GUIDE的替代产品:AppDesigner, 这是在MATLAB图形系统转向使用面向对象系统之后(R2014b),一个重要的后续产品。它旨在顺应Web的潮流,帮助用户利用新的图形系统方便的设计更加美观的GUI。要使用App Designer,需要最新的MATLAB R2016a; 或者已经安装了R2014b到R2015b之间的任一版本,可以从Mathworks的File Exchange处下载App Designer的安装包进行安装:
App Designer有什么主要的特点
- 最明显的特点:自动生成的代码使用了面向对象的语法。
- 最大的特点:增加了和工业应用相关的控件:比如仪表盘(Gauge),旋钮(Knob),开关(Switch),指示灯(Lamp)。
- App Designer采用了现代并且友好的界面,用户更容易自己学习和探索。
如何使用AppDesigner进行简单的GUI布局
模仿书中的例子,从设计台左边的Component Library(控件栏)中拖拽两个Edit Field(Numeric)和Button构成基本界面,如下所示:
如何在 Binarium 存钱
值得注意的是 ,如果点选多个控件,App Designer还可以帮助自动排布它们在横向和纵向的分布等等, 这个功能是笔者认为App Designer最友好和现代的功能之一!
如何修改App Designer控件的名字
点击CodeView,可以看到App Designer为这个界面自动生成的面向对象的代码,整段代码中有些部分是灰色的,这表示它们不可以在编辑器中直接被修改,而要通过App Designer提供的互动方式去修改,本节中我们先尊重App Designer的这样的工作流程,之后我们将会介绍直接修改类定义的方法。
可以点击右栏Component Browser中的app.Button和app.Button2来键入新的属性的名字, 注意: 左边代码中的属性名称也将做自动的 修改,(尽管这些属性的代码是灰色的),如图所示:
如何给App类添加属性
沿用第7章的MVC的设计思想,我们期望至少能把GUI的视图和模型分开(尽管目前看来好像多此一举), 在这个应用中,Model中应该包括账户Balance的值,于是我们给类添加一个叫做Balance的属性,这可以通过点击Toolstrip中的Editor->Property->Insert Private Property来达到:
如何设置GUI控件的初值
如何给控件添加callback
最后,我们需要给两个button添加回调函数,点击Component Browser->app.WithDrawButton->Callbacks->Add ButtonPushedFcn callback,如图所示:
App Designer会自动帮你在类的定义中插入一个方法,该方法的只有一个参数就是对象本身,名字叫做app, 其实和我们常用的obj是一回事。
MathWorks开发部MATLAB架构C++高级软件工程师。计算物理学博士,研究方向为电子结构计算、密度泛函算法开发;计算机硕士,研究方向为图像处理。2004年,开始使用MATLAB,在科研编程中遇到了开发大型程序难以维护的困难,花了很多时间用于改进程序但效果总不尽如人意。2009年,开始使用MATLAB面向对象编程,发现工程进度被迅速加快,于是萌生了写一本介绍MATLAB 面向对象编程书的念头。2011年,在美国取得博士学位之后入职MathWorks,从理科科研工作者和多年的MATLAB爱好者,成为一名MATLAB语言的设计开发和实现的软件工程师。2016年,作者在MATLAB中文论坛开辟了技术专栏,和大家分享最新的行业应用技术和MATLAB编程理念,旨在推动软件工程中的现代手段在MATLAB科学工程计算项目中的使用,帮助科学家和工程师们更有效地解决复杂的科研问题。《MATLAB面向对象编程:从入门到设计模式(第二版)》 凝结了作者多年的科研和工作经验以及对MATLAB语言的理解,希望能对各种规模的科学工程计算项目的MATLAB使用者有所启发。