人妻系列无码专区av在线,国内精品久久久久久婷婷,久草视频在线播放,精品国产线拍大陆久久尤物

當(dāng)前位置:首頁(yè) > 開發(fā)語(yǔ)言 > 正文

mybatis plus update mybatisplus中的updatetable

mybatis plus update mybatisplus中的updatetable

大家好,今天來(lái)為大家分享mybatis的一些知識(shí)點(diǎn),和mybatisplus中的updatetable的問(wèn)題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看...

大家好,今天來(lái)為大家分享mybatis的一些知識(shí)點(diǎn),和mybatisplus中的updatetable的問(wèn)題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概率可以解決您的問(wèn)題,接下來(lái)我們就一起來(lái)看看吧!

mybatis更新操作和添加操作的不同

更新操作是updatesql,添加是insertsql

自學(xué)java怎么入門

java培訓(xùn)主要的內(nèi)容有下邊的幾個(gè)階段:第一階段:java基礎(chǔ)本階段除了JavaSE中要求大家必會(huì)的java基礎(chǔ)知識(shí)外,重點(diǎn)加強(qiáng)了數(shù)據(jù)結(jié)構(gòu)思想、集合源碼分析、jdk9-11新特性的學(xué)習(xí)。

第二階段:數(shù)據(jù)庫(kù)本階段主要學(xué)習(xí)MySQL數(shù)據(jù)庫(kù)知識(shí),通過(guò)層層遞進(jìn),讓大家掌握開發(fā)使用的數(shù)據(jù)是如何存儲(chǔ)和處理的。并且逐步深入學(xué)習(xí)到索引和優(yōu)化、鎖機(jī)制、存儲(chǔ)過(guò)程等。

第三階段:web網(wǎng)頁(yè)技術(shù)本階段以項(xiàng)目案例為驅(qū)動(dòng),采用所學(xué)即所用的方式指導(dǎo)大家學(xué)習(xí),在邊學(xué)邊練過(guò)程中,可深入掌握Web開發(fā)技術(shù),具備與之匹配的實(shí)戰(zhàn)能力。

第四階段:框架學(xué)習(xí)本階段主要是學(xué)習(xí)市面上流行的框架技術(shù)來(lái)提升自己的開發(fā)能力,再輔以Linux命令以及Linux服務(wù)器的使用等內(nèi)容讓新手學(xué)到技術(shù),讓老手學(xué)到思想,讓高手學(xué)到境界。

第五階段:互聯(lián)網(wǎng)高級(jí)技術(shù)主要講解分布式管理系統(tǒng)、Keepalived+Nginx主備、微服務(wù)架構(gòu)技術(shù)、消息中間件技術(shù)、MySQL調(diào)優(yōu)、高并發(fā)技術(shù)、性能優(yōu)化、內(nèi)存和GC等。

第六階段:企業(yè)項(xiàng)目本階段主要是通過(guò)讓學(xué)員學(xué)習(xí)企業(yè)流行的項(xiàng)目,在動(dòng)手實(shí)操的過(guò)程中加深前面知識(shí)的認(rèn)識(shí),并且增加學(xué)員企業(yè)項(xiàng)目開發(fā)經(jīng)驗(yàn)。

mybatisplus優(yōu)缺點(diǎn)

Mybatisplus是一個(gè)基于Mybatis的增強(qiáng)工具,提供了許多方便開發(fā)的功能,但也有一些缺點(diǎn)。

優(yōu)點(diǎn):

1.提高開發(fā)效率:Mybatisplus提供了通用的Mapper、Wrapper、Page、Lambda等模塊,減少了很多編寫重復(fù)代碼的工作量,讓開發(fā)者更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。

2.提供了豐富的特性:Mybatisplus支持快速構(gòu)建動(dòng)態(tài)SQL語(yǔ)句、代碼生成器、多租戶、性能分析、數(shù)據(jù)權(quán)限等功能,提高了系統(tǒng)的可拓展性和可維護(hù)性。

3.簡(jiǎn)化代碼復(fù)雜性:Mybatisplus提供了很多便于使用的方法,能夠簡(jiǎn)化代碼的邏輯復(fù)雜性,例如可以通過(guò)條件構(gòu)造器Wrapper構(gòu)建動(dòng)態(tài)查詢條件,簡(jiǎn)化了SQL語(yǔ)句的編寫。

缺點(diǎn):

1.增加了學(xué)習(xí)成本:盡管Mybatisplus提供了很多的便利操作,但是開發(fā)者仍然需要花費(fèi)時(shí)間學(xué)習(xí)如何正確使用這些特性。

2.可定制性較低:由于Mybatisplus是基于Mybatis二次開發(fā)的,因此對(duì)于一些需要特定定制的功能,可能難以滿足開發(fā)者的需求。

3.框架復(fù)雜性增加:Mybatisplus提供了很多便利操作,但是對(duì)于一些開發(fā)者來(lái)說(shuō),這些套路流程并不是必須的,反而會(huì)增加框架的復(fù)雜度和學(xué)習(xí)曲線。

結(jié)論:

總的來(lái)說(shuō),Mybatisplus還是一個(gè)非常優(yōu)秀的增強(qiáng)工具,可以提高開發(fā)效率和代碼質(zhì)量。但是在選擇是否使用這個(gè)工具的時(shí)候,需要考慮到項(xiàng)目的實(shí)際情況,權(quán)衡其優(yōu)缺點(diǎn)后再做決定。

具體步驟:

使用Mybatisplus開發(fā)項(xiàng)目時(shí),可以按照以下步驟進(jìn)行操作:

1.添加Mybatisplus依賴:可以在Maven或者Gradle配置文件中添加Mybatisplus依賴。

2.建立實(shí)體類和Mapper接口:與傳統(tǒng)的Mybatis開發(fā)方式相同,需要建立實(shí)體類和Mapper接口。

3.使用通用Mapper:Mybatisplus提供了通用的Mapper,可以直接使用其中的方法操作數(shù)據(jù)庫(kù)。

4.使用Wrapper構(gòu)建查詢條件:Mybatisplus的Wrapper對(duì)象可以幫助構(gòu)建動(dòng)態(tài)查詢條件。

5.使用Page分頁(yè)查詢:Mybatisplus提供了Page對(duì)象和分頁(yè)插件,可以方便地進(jìn)行分頁(yè)查詢。

6.使用Lambda表達(dá)式:Mybatisplus提供了Lambda表達(dá)式,可以更便捷地進(jìn)行動(dòng)態(tài)SQL語(yǔ)句的構(gòu)造。

7.使用代碼生成器:Mybatisplus提供了內(nèi)置的代碼生成器,可以快速生成Mapper接口和實(shí)體類。

my batis怎樣,實(shí)現(xiàn)mysql動(dòng)態(tài),分頁(yè)

在這些控件里要達(dá)到分頁(yè)的效果,一般都會(huì)傳2個(gè)參數(shù),第一個(gè)是表示當(dāng)前頁(yè)的索引(一般從0開始),第二個(gè)表示當(dāng)前頁(yè)展示多少條業(yè)務(wù)記錄,然后將相應(yīng)的參數(shù)傳遞給List<T>getList(PagenateArgsargs)方法,最終實(shí)現(xiàn)數(shù)據(jù)庫(kù)中的分頁(yè)時(shí)候可以使用limit關(guān)鍵詞(針對(duì)mysql)進(jìn)行分頁(yè),如果是oracle或者sqlserver他們都有自帶的rownum函數(shù)可以使用。

針對(duì)上述思路,首先在demo.mybatis.model下面新建一個(gè)名為PagenateArgs的分頁(yè)參數(shù)實(shí)體類與一個(gè)名為SortDirectionEnum的枚舉類,里面包含當(dāng)前頁(yè)面索引pageIndex,當(dāng)前頁(yè)展示業(yè)務(wù)記錄數(shù)pageSize,pageStart屬性表示從第幾條開始,(pageStart=pageIndex*pageSize)因?yàn)閘imit關(guān)鍵詞用法是表示【limit起始條數(shù)(不包含),取幾條】,orderFieldStr排序字段,orderDirectionStr排序方向,所以具體創(chuàng)建如下:

packagedavid.mybatis.model;/**分頁(yè)參數(shù)實(shí)體類*/publicclassPagenateArgs{privateintpageIndex;privateintpageSize;privateintpageStart;privateStringorderFieldStr;privateStringorderDirectionStr;publicPagenateArgs(){//TODOAuto-generatedconstructorstub}publicPagenateArgs(intpageIndex,intpageSize,StringorderFieldStr,StringorderDirectionStr){this.pageIndex=pageIndex;this.pageSize=pageSize;this.orderFieldStr=orderFieldStr;this.orderDirectionStr=orderDirectionStr;pageStart=pageIndex*pageSize;}publicintgetPageIndex(){returnpageIndex;}publicintgetPageStart(){returnpageStart;}publicintgetPageSize(){returnpageSize;}publicStringorderFieldStr(){returnorderFieldStr;}publicStringgetOrderDirectionStr(){returnorderDirectionStr;}}

packagedavid.mybatis.model;/**排序枚舉*/publicenumSortDirectionEnum{/**升序*/ASC,/**降序*/DESC}

完成上面的步驟以后在IVisitorOperation接口類中繼續(xù)添加一個(gè)方法publicList<Visitor>getListByPagenate(PagenateArgsargs),這次的分頁(yè)其實(shí)也就是在這個(gè)的基礎(chǔ)上稍加改動(dòng)即可,IVisitorOperation接口類改動(dòng)后如下所示:

packagedavid.mybatis.demo;importjava.util.List;importdavid.mybatis.model.PagenateArgs;importdavid.mybatis.model.Visitor;importdavid.mybatis.model.VisitorWithRn;publicinterfaceIVisitorOperation{/**基礎(chǔ)查詢*/publicVisitorbasicQuery(intid);/**添加訪問(wèn)者*/publicintadd(Visitorvisitor);/**刪除訪問(wèn)者*/publicintdelete(intid);/**更新訪問(wèn)者*/publicintupdate(Visitorvisitor);/**查詢?cè)L問(wèn)者*/publicVisitorquery(intid);/**查詢List*/publicList<Visitor>getList();/**分頁(yè)查詢List*/publicList<Visitor>getListByPagenate(PagenateArgsargs);}

接下來(lái)改動(dòng)VisitorMapper.xml配置文件了,新增一個(gè)<select>節(jié)點(diǎn)id與參數(shù)類型參照前幾章的方式配置好,如下此處新增的id就為getListByPagenate,配置好以后如下

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""

http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mappernamespace="david.mybatis.demo.IVisitorOperation"><!--useGeneratedKeys="true"代表是否使用自增長(zhǎng)序列,keyProperty="Id"指定自增長(zhǎng)列是哪一列,parameterType="Visitor"指定IVisitorOperation接口類中定義中所傳的相應(yīng)類型--><insertid="add"parameterType="Visitor"useGeneratedKeys="true"keyProperty="Id">insertintoVisitor(Name,Email,Status,CreateTime)values(#{name},#{email},#{status},#{createTime})</insert><deleteid="delete"parameterType="int">deletefromVisitorwherestatus>0andid=#{id}</delete><updateid="update"parameterType="Visitor">updateVisitorsetName=#{name},Email=#{email},Status=#{status}whereid=#{id}andStatus>0;</update><selectid="query"parameterType="int"resultType="Visitor">selectId,Name,Email,Status,CreateTimefromvisitorwhereid=#{id}andStatus>0orderbyId</select><selectid="basicQuery"parameterType="int"resultType="Visitor">select*fromvisitorwhereid=#{id}andStatus>0orderbyId</select><selectid="getList"resultMap="visitorRs"><includerefid="getListSql"/></select><sqlid="getListSql">select*fromVisitorwherestatus>0</sql><!--以下為新增部分用來(lái)分頁(yè),orderBySql這個(gè)提取出來(lái)是為了后面有示例復(fù)用--><resultMaptype="Visitor"id="visitorRs"><idcolumn="Id"property="id"/><resultcolumn="Name"property="name"/><resultcolumn="Email"property="email"/><resultcolumn="Status"property="status"/><resultcolumn="CreateTime"property="createTime"/></resultMap><selectid="getListByPagenate"parameterType="PagenateArgs"resultType="Visitor">select*from(<includerefid="getListSql"/><includerefid="orderBySql"/>)t<!--#{}表示參數(shù)化輸出,${}表示直接輸出不進(jìn)行任何轉(zhuǎn)義操作,自己進(jìn)行轉(zhuǎn)移--><iftest="pageStart>-1andpageSize>-1">limit#{pageStart},#{pageSize}</if></select><sqlid="orderBySql">orderby${orderFieldStr}${orderDirectionStr}</sql></mapper>

這里面的字段屬性都是針對(duì)PagenateArgs參數(shù)類中的屬性名,保持一致。

<iftest="pageStart>-1andpageSize>-1">limit#{pageStart},#{pageSize}</if>

在DemoRun類中創(chuàng)建測(cè)試方法:

/**分頁(yè)參數(shù)*/publicstaticvoidqueryVisitorListWithPagenate(intpageIndex,intpageSize,StringorderField,StringorderDire){PagenateArgsargs=newPagenateArgs(pageIndex,pageSize,orderField,orderDire);SqlSessionsession=MybatisUtils.getSqlSession();IVisitorOperationvOperation=session.getMapper(IVisitorOperation.class);List<Visitor>visitors=vOperation.getListByPagenate(args);for(Visitorvisitor:visitors){System.out.println(visitor);}MybatisUtils.closeSession(session);MybatisUtils.showMessages(CRUD_Enum.List,visitors.size());}

DemoRun.queryVisitorListWithPagenate(0,100,"id",SortDirectionEnum.DESC.toString());

運(yùn)行后下測(cè)試結(jié)果,先按Id倒序排列,查的Visitor表一共有14條記錄,

假設(shè)取在第2頁(yè)取5條,執(zhí)行下面也就是6-10條數(shù)據(jù),這樣傳參數(shù)就行了

DemoRun.queryVisitorListWithPagenate(1,5,"id",SortDirectionEnum.DESC.toString());

結(jié)果如下:

實(shí)現(xiàn)了一個(gè)分頁(yè)邏輯.

mybatisoracle多條update語(yǔ)句怎么寫

批量更新多條,一個(gè)UPDATE語(yǔ)句updatetableNamewhereidin#{Ids} <foreachcollection="roleIds"item="item"index="index"open="(" separator=","close=")"> #{item} </foreach>

eclipse增刪改查基本語(yǔ)句

1.增刪改查基本語(yǔ)句是存在的。2.在eclipse中,增加語(yǔ)句使用的是INSERTINTO語(yǔ)句,刪除語(yǔ)句使用的是DELETEFROM語(yǔ)句,修改使用的是UPDATE語(yǔ)句,查詢使用的是SELECT語(yǔ)句。3.除了基本語(yǔ)句之外,eclipse還提供了很多其他的工具和插件來(lái)輔助用戶完成數(shù)據(jù)庫(kù)的操作,例如MyBatis、Hibernate等等。

END,本文到此結(jié)束,如果可以幫助到大家,還望關(guān)注本站哦!