為什么要學(xué)習(xí)它呢?
創(chuàng)新互聯(lián)公司是專業(yè)的雁山網(wǎng)站建設(shè)公司,雁山接單;提供做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行雁山網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
答:MyBatisPlus可以節(jié)省我們大量工作時(shí)間,所有的CRUD代碼它都可以自動(dòng)化完成!
優(yōu)點(diǎn):
1. 易于上手和掌握。
2. sql寫在xml里,便于統(tǒng)一管理和優(yōu)化。
3. 解除sql與程序代碼的耦合。
4. 提供映射標(biāo)簽,支持對(duì)象與數(shù)據(jù)庫(kù)的orm字段關(guān)系映射
5. 提供對(duì)象關(guān)系映射標(biāo)簽,支持對(duì)象關(guān)系組建維護(hù)
6. 提供xml標(biāo)簽,支持編寫動(dòng)態(tài)sql。
MyBatis Plus(簡(jiǎn)稱 MP)是一個(gè) MyBatis的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生。
就像 魂斗羅 中的 1P、2P,基友搭配,效率翻倍。
特性:
無侵入 :只做增強(qiáng)不做改變,引入它不會(huì)對(duì)現(xiàn)有工程產(chǎn)生影響,如絲般順滑。
損耗小 :?jiǎn)?dòng)即會(huì)自動(dòng)注入基本 CURD,性能基本無損耗,直接面向?qū)ο蟛僮? 強(qiáng)大的 CRUD 操作 :內(nèi)置通用 Mapper、通用 Service,僅僅通過少量配置即可實(shí)現(xiàn)單表大部分 CRUD 操作,更有強(qiáng)大的條件構(gòu)造器,滿足各類使用需求 支持 Lambda 形式調(diào)用 :通過 Lambda 表達(dá)式,方便地編寫各類查詢條件,無需再擔(dān)心字段寫錯(cuò)。
支持組件自動(dòng)生成 :支持多達(dá) 4 種主鍵策略(內(nèi)含分布式唯一 ID 生成器 Sequence),可自由配置,完美解決主鍵問題。
支持 ActiveRecord 模式 :支持 ActiveRecord 形式調(diào)用,實(shí)體類只需繼承 Model 類即可進(jìn)行強(qiáng)大的 CRUD 操作。
支持自定義全局通用操作 :支持全局通用方法注入( Write once, use anywhere )。
內(nèi)置代碼生成器 :采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來使用 內(nèi)置分頁(yè)插件 :基于 MyBatis 物理分頁(yè),開發(fā)者無需關(guān)心具體操作,配置好插件之后,寫分頁(yè)等同于普通 List查詢。
分頁(yè)插件支持多種數(shù)據(jù)庫(kù) :支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多種數(shù)據(jù)庫(kù)。
內(nèi)置性能分析插件 :可輸出 Sql 語(yǔ)句以及其執(zhí)行時(shí)間,建議開發(fā)測(cè)試時(shí)啟用該功能,能快速揪出慢查詢。
內(nèi)置全局?jǐn)r截插件 :提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規(guī)則,預(yù)防誤操作。
1.1 、引入mybatis-plus相關(guān)maven依賴
引入mybatis-plus在spring boot中的場(chǎng)景啟動(dòng)器
ps:切記不可再在pom.xml文件中引入mybatis與mybatis-spring的maven依賴,這一點(diǎn),mybatis-plus的官方文檔中已經(jīng)說明的很清楚了.
1.2、創(chuàng)建數(shù)據(jù)表
(1)SQL語(yǔ)句
(2) 數(shù)據(jù)表結(jié)構(gòu)
1.3、 創(chuàng)建java bean
根據(jù)數(shù)據(jù)表新建相關(guān)實(shí)體類
1 package com.example.demo.pojo
1.4、 配置application.proprties
數(shù)據(jù)源使用druid
ps:在進(jìn)行crud實(shí)驗(yàn)之前,簡(jiǎn)單對(duì)mybatis與mybatis-plus做一個(gè)簡(jiǎn)單的對(duì)比
2.1、mybatis與mybatis-plus實(shí)現(xiàn)方式對(duì)比
(1)提出問題: 假設(shè)我們已存在一張 tbl_employee 表,且已有對(duì)應(yīng)的實(shí)體類 Employee,實(shí)現(xiàn) tbl_employee 表的 CRUD操作我們需要做什么呢?
(2)實(shí)現(xiàn)方式: 基于 Mybatis 需要編寫 EmployeeMapper 接口,并手動(dòng)編寫 CRUD 方法 提供 EmployeeMapper.xml 映射文件,并手動(dòng)編寫每個(gè)方法對(duì)應(yīng)的 SQL 語(yǔ)句. 基于 Mybatis-plus 只需要?jiǎng)?chuàng)建 EmployeeMapper 接口, 并繼承BaseMapper 接口.這就是使用 mybatis-plus 需要完成的所有操作,甚至不需要?jiǎng)?chuàng)建 SQL 映射文件。
2.2、BaseMapper接口介紹
(1)如何理解核心接口BaseMapper?
在使用Mybatis-Plus時(shí),核心操作類是BaseMapper接口,其最終也是利用的Mybatis接口編程的實(shí)現(xiàn)機(jī)制,其默認(rèn)提供了一系列的增刪改查的基礎(chǔ)方法,并且開發(fā)人員對(duì)于這些基礎(chǔ)操作不需要寫SQL進(jìn)行處理操作(Mybatis提供的機(jī)制就是需要開發(fā)人員在mapper.xml中提供sql語(yǔ)句),那樣我們可以猜測(cè)肯定是Mybatis-Plus完成了BaseMapper接口提供的方法的SQL語(yǔ)句的生成操作。
(2)BaseMapper接口為我們定義了哪些方法?
BaseMapper接口源碼:
(3) mybatis-plus中常用的注解 1
由于我們的數(shù)據(jù)表名于實(shí)體類的類名不一致,并且實(shí)體類于數(shù)據(jù)表還存在字段名不對(duì)應(yīng)的情況,因此我們需要引入mybatis-plus的注解.
編寫EmployeeMapper接口繼承BaseMapper接口
準(zhǔn)備考試環(huán)境:
(1)插入
(2)修改
控制臺(tái)打印出的sql語(yǔ)句
如果我們不設(shè)置實(shí)體類的email與gender屬性,結(jié)果是怎樣的呢?
控制臺(tái)sql語(yǔ)句:
顯然,mybatis-plus為我們做了非空判斷,空值的話,默認(rèn)不更新對(duì)應(yīng)的字段.想一想,這是不是類似于mybatis中的動(dòng)態(tài)sql呢?
這種處理效果又會(huì)帶來什么好處呢?
(3)查詢
selectById方法
selectBatchIds方法
ps:發(fā)現(xiàn)該方法底層使用的竟然是sql的in關(guān)鍵字
selectByMap方法
(4)刪除
3、不得不提的條件構(gòu)造器---Wrapper
3.1.wrapper及其子類介紹
(1)Wrapper :條件構(gòu)造抽象類,最頂端父類,抽象類中提供3個(gè)方法以及其他方法.
JDBC連接數(shù)據(jù)庫(kù)簡(jiǎn)單筆記摘要(sql server 2000需要安裝sp4打開1433端口):
定義需要的對(duì)象
PreparedStatement ps=null;
Connection conn=null;
ResultSet rs=null;
1.加載驅(qū)動(dòng)
(作用是把需要的驅(qū)動(dòng)程序加入內(nèi)存)
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
2.得到連接
(指定要連接的數(shù)據(jù)庫(kù),登錄的用戶名和密碼)
(選擇Windows NT驗(yàn)證,不需要用戶名和密碼)
//conn=DriverMannager.getConnection("jdbc:odbc:數(shù)據(jù)庫(kù)名"[,"用戶名","密碼"]);
conn=DriverMannager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=數(shù)據(jù)庫(kù)名","用戶名","密碼")
3.創(chuàng)建Statement或PreparedStatement[區(qū)別]
(Statement主要用于發(fā)送SQL語(yǔ)句)
ps=conn.prepareStatement("select name,sal from tablename");
4.執(zhí)行
(CRUD,創(chuàng)建、備份、還原、刪除數(shù)據(jù)庫(kù))
//executeUpdate可以執(zhí)行CUD操作(添加、刪除、修改)
rs=ps.executQuery();
//循環(huán)取出
while(rs.next())
{
String name=rs.getString("name");
float sal=rs.getFloat("sal");
System.out.println(name+sal+"\n");
}
5.關(guān)閉連接
(一定要記得關(guān)閉連接,關(guān)閉順序:先建后閉,后建先閉)
if(ct!=null){
ct.colose();
ct=null;
}
1--SQLSERVER如何添加約束和刪除約束add constraint 2 3--添加unique約束 4USE pratice 5alterTABLE dbo.bulkinserttest addconstraint ck_bulkinsert UNIQUE(id) --添加約束的列名 6 7 8--刪除約束 9--先查出約束名10EXEC sys.sp_helpconstraint @objname= N'bulkinserttest'--表名111213ALTERTABLE dbo.bulkinserttest DROPCONSTRAINT ck_bulkinsert 1415--添加check約束16alterTABLE dbo.bulkinserttest withnocheck17addconstraint ck_bulkinsert check(id between1and1000)
請(qǐng)參考
里面有數(shù)據(jù)庫(kù)的知識(shí)
你可以看下 學(xué)習(xí)筆記部分
當(dāng)然你可以查閱MSDN
把一場(chǎng)完美的賽車比賽看作是一個(gè)好程序,java是賽車,jdk是發(fā)動(dòng)機(jī),tomcat是跑道。sqlserver沒想出好的比喻、
把一堂課比作一個(gè)java程序,老師是java負(fù)責(zé)講課(一步一步程序執(zhí)行),老師的心臟是jdk(java代碼基于jdk才能運(yùn)行),教室、學(xué)校是tomcat(web容器,老師換一個(gè)教室、換一個(gè)學(xué)校一樣講課、能運(yùn)行),sqlserver比作是老師的備課筆記, 心臟正常跳動(dòng)讓老師能在教室中把備課筆記里的內(nèi)容將給學(xué)生聽。 意思就是jdk(大腦)確保java(老師)正常運(yùn)行,并讀取sqlserver(備課筆記)內(nèi)的內(nèi)容,在tomcat(教室)里展示給用戶(學(xué)生)看。 可能比喻的不恰當(dāng)。。湊合看吧。。
個(gè)人榮譽(yù)要根據(jù)自己實(shí)際所獲得的榮譽(yù)情況,按時(shí)間順序填寫,首先寫獲得時(shí)間,然后寫獲得榮譽(yù)的內(nèi)容。
如2010年11月,獲山西省首屆師生規(guī)范漢字書寫大賽二等獎(jiǎng)。榮譽(yù)證書是指記錄獲得的嘉獎(jiǎng)榮譽(yù)、作為獎(jiǎng)勵(lì)的證明證件。榮譽(yù)證書的外形各種各樣,由使用單位自行決定采用哪種,且不同的單位使用的格式不同。