国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站設(shè)計(jì)服務(wù)有哪些/網(wǎng)頁(yè)seo

網(wǎng)站設(shè)計(jì)服務(wù)有哪些,網(wǎng)頁(yè)seo,展示型網(wǎng)站源碼,視頻格式轉(zhuǎn)換網(wǎng)頁(yè)版MyBatisPlus標(biāo)準(zhǔn)數(shù)據(jù)層開(kāi)發(fā)2,標(biāo)準(zhǔn)數(shù)據(jù)層開(kāi)發(fā)2.1 標(biāo)準(zhǔn)CRUD使用2.2 新增2.3 刪除2.4 修改2.5 根據(jù)ID查詢(xún)2.6 查詢(xún)所有2.7 Lombok概念使用步驟步驟1:添加lombok依賴(lài)步驟2:安裝Lombok的插件步驟3:模型類(lèi)上添加注解2.8 分頁(yè)功能步驟1:調(diào)用方法傳入?yún)?shù)獲取返回值步驟2:設(shè)…

MyBatisPlus標(biāo)準(zhǔn)數(shù)據(jù)層開(kāi)發(fā)

  • 2,標(biāo)準(zhǔn)數(shù)據(jù)層開(kāi)發(fā)
    • 2.1 標(biāo)準(zhǔn)CRUD使用
    • 2.2 新增
    • 2.3 刪除
    • 2.4 修改
    • 2.5 根據(jù)ID查詢(xún)
    • 2.6 查詢(xún)所有
    • 2.7 Lombok
      • 概念
      • 使用步驟
        • 步驟1:添加lombok依賴(lài)
        • 步驟2:安裝Lombok的插件
        • 步驟3:模型類(lèi)上添加注解
    • 2.8 分頁(yè)功能
      • 步驟1:調(diào)用方法傳入?yún)?shù)獲取返回值
      • 步驟2:設(shè)置分頁(yè)攔截器
      • 步驟3:運(yùn)行測(cè)試程序

目標(biāo)

  • 掌握MyBatisPlus中的分頁(yè)及條件查詢(xún)構(gòu)建

2,標(biāo)準(zhǔn)數(shù)據(jù)層開(kāi)發(fā)

在這一節(jié)中我們重點(diǎn)學(xué)習(xí)的是數(shù)據(jù)層標(biāo)準(zhǔn)的CRUD(增刪改查)的實(shí)現(xiàn)與分頁(yè)功能。代碼比較多,我們一個(gè)個(gè)來(lái)學(xué)習(xí)。


2.1 標(biāo)準(zhǔn)CRUD使用

對(duì)于標(biāo)準(zhǔn)的CRUD功能都有哪些以及MP都提供了哪些方法可以使用呢?

我們先來(lái)看張圖:

對(duì)于這張圖的方法,我們挨個(gè)來(lái)演示下:

首先說(shuō)下,案例中的環(huán)境就是咱們?nèi)腴T(mén)案例的內(nèi)容,第一個(gè)先來(lái)完成新增功能


2.2 新增

在進(jìn)行新增之前,我們可以分析下新增的方法:

int insert (T t)
  • T:泛型,新增用來(lái)保存新增數(shù)據(jù)

  • int:返回值,新增成功后返回1,沒(méi)有新增成功返回的是0

在測(cè)試類(lèi)中進(jìn)行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testSave() {User user = new User();user.setName("黑馬程序員");user.setPassword("itheima");user.setAge(12);user.setTel("4006184000");userDao.insert(user);}
}

執(zhí)行測(cè)試后,數(shù)據(jù)庫(kù)表中就會(huì)添加一條數(shù)據(jù)。

但是數(shù)據(jù)中的主鍵ID,有點(diǎn)長(zhǎng),那這個(gè)主鍵ID是如何來(lái)的?我們更想要的是主鍵自增,應(yīng)該是5才對(duì),這個(gè)是我們后面要學(xué)習(xí)的主鍵ID生成策略,這塊的這個(gè)問(wèn)題,我們暫時(shí)先放放。


2.3 刪除

在進(jìn)行刪除之前,我們可以分析下刪除的方法:

int deleteById (Serializable id)
  • Serializable:參數(shù)類(lèi)型

    • 思考:參數(shù)類(lèi)型為什么是一個(gè)序列化類(lèi)?

      從這張圖可以看出,

      • String和Number是Serializable的子類(lèi),
      • Number又是Float,Double,Integer等類(lèi)的父類(lèi),
      • 能作為主鍵的數(shù)據(jù)類(lèi)型都已經(jīng)是Serializable的子類(lèi),
      • MP使用Serializable作為參數(shù)類(lèi)型,就好比我們可以用Object接收任何數(shù)據(jù)類(lèi)型一樣。
  • int:返回值類(lèi)型,數(shù)據(jù)刪除成功返回1,未刪除數(shù)據(jù)返回0。

在測(cè)試類(lèi)中進(jìn)行新增操作:

 @SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testDelete() {userDao.deleteById(1401856123725713409L);}
}

2.4 修改

在進(jìn)行修改之前,我們可以分析下修改的方法:

int updateById(T t);
  • T:泛型,需要修改的數(shù)據(jù)內(nèi)容,注意因?yàn)槭歉鶕?jù)ID進(jìn)行修改,所以傳入的對(duì)象中需要有ID屬性值

  • int:返回值,修改成功后返回1,未修改數(shù)據(jù)返回0

在測(cè)試類(lèi)中進(jìn)行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testUpdate() {User user = new User();user.setId(1L);user.setName("Tom888");user.setPassword("tom888");userDao.updateById(user);}
}

**說(shuō)明:**修改的時(shí)候,只修改實(shí)體對(duì)象中有值的字段。


2.5 根據(jù)ID查詢(xún)

在進(jìn)行根據(jù)ID查詢(xún)之前,我們可以分析下根據(jù)ID查詢(xún)的方法:

T selectById (Serializable id)
  • Serializable:參數(shù)類(lèi)型,主鍵ID的值
  • T:根據(jù)ID查詢(xún)只會(huì)返回一條數(shù)據(jù)

在測(cè)試類(lèi)中進(jìn)行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testGetById() {User user = userDao.selectById(2L);System.out.println(user);}
}

2.6 查詢(xún)所有

在進(jìn)行查詢(xún)所有之前,我們可以分析下查詢(xún)所有的方法:

List<T> selectList(Wrapper<T> queryWrapper)
  • Wrapper:用來(lái)構(gòu)建條件查詢(xún)的條件,目前我們沒(méi)有可直接傳為Null
  • List:因?yàn)椴樵?xún)的是所有,所以返回的數(shù)據(jù)是一個(gè)集合

在測(cè)試類(lèi)中進(jìn)行新增操作:

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;@Testvoid testGetAll() {List<User> userList = userDao.selectList(null);System.out.println(userList);}
}

我們所調(diào)用的方法都是來(lái)自于DAO接口繼承的BaseMapper類(lèi)中。里面的方法有很多,我們后面會(huì)慢慢去學(xué)習(xí)里面的內(nèi)容。


2.7 Lombok

代碼寫(xiě)到這,我們會(huì)發(fā)現(xiàn)DAO接口類(lèi)的編寫(xiě)現(xiàn)在變成最簡(jiǎn)單的了,里面什么都不用寫(xiě)。反過(guò)來(lái)看看模型類(lèi)的編寫(xiě)都需要哪些內(nèi)容:

  • 私有屬性
  • setter…getter…方法
  • toString方法
  • 構(gòu)造函數(shù)

雖然這些內(nèi)容不難,同時(shí)也都是通過(guò)IDEA工具生成的,但是過(guò)程還是必須得走一遍,那么對(duì)于模型類(lèi)的編寫(xiě)有沒(méi)有什么優(yōu)化方法?就是我們接下來(lái)要學(xué)習(xí)的Lombok。


概念

  • Lombok,一個(gè)Java類(lèi)庫(kù),提供了一組注解,簡(jiǎn)化POJO實(shí)體類(lèi)開(kāi)發(fā)。

使用步驟


步驟1:添加lombok依賴(lài)

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><!--<version>1.18.12</version>-->
</dependency>

**注意:**版本可以不用寫(xiě),因?yàn)镾pringBoot中已經(jīng)管理了lombok的版本。


步驟2:安裝Lombok的插件

新版本IDEA已經(jīng)內(nèi)置了該插件,如果刪除setter和getter方法程序有報(bào)紅,則需要安裝插件

如果在IDEA中找不到lombok插件,可以訪(fǎng)問(wèn)如下網(wǎng)站

https://plugins.jetbrains.com/plugin/6317-lombok/versions

根據(jù)自己IDEA的版本下載對(duì)應(yīng)的lombok插件,下載成功后,在IDEA中采用離線(xiàn)安裝的方式進(jìn)行安裝。

步驟3:模型類(lèi)上添加注解

Lombok常見(jiàn)的注解有:

  • @Setter:為模型類(lèi)的屬性提供setter方法
  • @Getter:為模型類(lèi)的屬性提供getter方法
  • @ToString:為模型類(lèi)的屬性提供toString方法
  • @EqualsAndHashCode:為模型類(lèi)的屬性提供equals和hashcode方法
  • @Data:是個(gè)組合注解,包含上面的注解的功能
  • @NoArgsConstructor:提供一個(gè)無(wú)參構(gòu)造函數(shù)
  • @AllArgsConstructor:提供一個(gè)包含所有參數(shù)的構(gòu)造函數(shù)

Lombok的注解還有很多,上面標(biāo)紅的三個(gè)是比較常用的,其他的大家后期用到了,再去補(bǔ)充學(xué)習(xí)。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Long id;private String name;private String password;private Integer age;private String tel;
}

說(shuō)明:

Lombok只是簡(jiǎn)化模型類(lèi)的編寫(xiě),我們之前的方法也能用,比如有人會(huì)問(wèn):我如果只想要有name和password的構(gòu)造函數(shù),該如何編寫(xiě)?

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Long id;private String name;private String password;private Integer age;private String tel;public User(String name, String password) {this.name = name;this.password = password;}
}

這種方式是被允許的。


2.8 分頁(yè)功能

基礎(chǔ)的增刪改查就已經(jīng)學(xué)習(xí)完了,剛才我們?cè)诜治龌A(chǔ)開(kāi)發(fā)的時(shí)候,有一個(gè)分頁(yè)功能還沒(méi)有實(shí)現(xiàn),在MP中如何實(shí)現(xiàn)分頁(yè)功能,就是咱們接下來(lái)要學(xué)習(xí)的內(nèi)容。

分頁(yè)查詢(xún)使用的方法是:

IPage<T> selectPage(IPage<T> page, Wrapper<T> queryWrapper)
  • IPage:用來(lái)構(gòu)建分頁(yè)查詢(xún)條件
  • Wrapper:用來(lái)構(gòu)建條件查詢(xún)的條件,目前我們沒(méi)有可直接傳為Null
  • IPage:返回值,你會(huì)發(fā)現(xiàn)構(gòu)建分頁(yè)條件和方法的返回值都是IPage

IPage是一個(gè)接口,我們需要找到它的實(shí)現(xiàn)類(lèi)來(lái)構(gòu)建它,具體的實(shí)現(xiàn)類(lèi),可以進(jìn)入到IPage類(lèi)中按ctrl+h,會(huì)找到其有一個(gè)實(shí)現(xiàn)類(lèi)為Page


步驟1:調(diào)用方法傳入?yún)?shù)獲取返回值

@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {@Autowiredprivate UserDao userDao;//分頁(yè)查詢(xún)@Testvoid testSelectPage(){//1 創(chuàng)建IPage分頁(yè)對(duì)象,設(shè)置分頁(yè)參數(shù),1為當(dāng)前頁(yè)碼,3為每頁(yè)顯示的記錄數(shù)IPage<User> page=new Page<>(1,3);//2 執(zhí)行分頁(yè)查詢(xún)userDao.selectPage(page,null);//3 獲取分頁(yè)結(jié)果System.out.println("當(dāng)前頁(yè)碼值:"+page.getCurrent());System.out.println("每頁(yè)顯示數(shù):"+page.getSize());System.out.println("一共多少頁(yè):"+page.getPages());System.out.println("一共多少條數(shù)據(jù):"+page.getTotal());System.out.println("數(shù)據(jù):"+page.getRecords());}
}

步驟2:設(shè)置分頁(yè)攔截器

這個(gè)攔截器MP已經(jīng)為我們提供好了,我們只需要將其配置成Spring管理的bean對(duì)象即可。

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){//1 創(chuàng)建MybatisPlusInterceptor攔截器對(duì)象MybatisPlusInterceptor mpInterceptor=new MybatisPlusInterceptor();//2 添加分頁(yè)攔截器mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mpInterceptor;}
}

**說(shuō)明:**上面的代碼記不住咋辦呢?

這些內(nèi)容在MP的官方文檔中有詳細(xì)的說(shuō)明,我們可以查看官方文檔類(lèi)配置


步驟3:運(yùn)行測(cè)試程序

如果想查看MP執(zhí)行的SQL語(yǔ)句,可以修改application.yml配置文件,

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印SQL日志到控制臺(tái)

打開(kāi)日志后,就可以在控制臺(tái)打印出對(duì)應(yīng)的SQL語(yǔ)句,開(kāi)啟日志功能性能就會(huì)受到影響,調(diào)試完后記得關(guān)閉。


學(xué)習(xí)筆記 from 黑馬程序員

By – Suki 2023/4/7

http://m.aloenet.com.cn/news/387.html

相關(guān)文章:

  • 網(wǎng)站開(kāi)發(fā) 項(xiàng)目計(jì)劃/免費(fèi)推廣網(wǎng)站地址大全
  • 鹽城市亭湖區(qū)建設(shè)局網(wǎng)站/博客可以做seo嗎
  • 10個(gè)值得推薦的免費(fèi)設(shè)計(jì)網(wǎng)站/怎么讓網(wǎng)站快速收錄
  • photoshop在線(xiàn)修圖/東莞seo管理
  • 門(mén)戶(hù)網(wǎng)站樣式/百度提問(wèn)在線(xiàn)回答問(wèn)題
  • 網(wǎng)站聯(lián)系我們的地圖怎么做的/seo收費(fèi)標(biāo)準(zhǔn)
  • 北京網(wǎng)站建設(shè)交易/肇慶seo優(yōu)化
  • 網(wǎng)站 色調(diào)/世界搜索引擎大全
  • 南充網(wǎng)站建設(shè)工作室/互聯(lián)網(wǎng)推廣有哪些方式
  • 工業(yè)和信息化部icp網(wǎng)站備案系統(tǒng)/百度查詢(xún)?nèi)肟?/a>
  • 游戲推廣網(wǎng)站如何做的/一件代發(fā)48個(gè)貨源網(wǎng)站
  • 淘寶客怎么建設(shè)網(wǎng)站/實(shí)時(shí)新聞
  • 姜堰 萬(wàn)邦建設(shè)集團(tuán)網(wǎng)站/seosem是什么職位
  • 信融網(wǎng)站建設(shè)網(wǎng)站開(kāi)發(fā)/百度推廣代運(yùn)營(yíng)公司
  • 做網(wǎng)站傻瓜/汕頭企業(yè)網(wǎng)絡(luò)推廣
  • 手機(jī)網(wǎng)站建設(shè)方案書(shū)/網(wǎng)店推廣渠道有哪些
  • 微信云網(wǎng)站用什么做/長(zhǎng)沙網(wǎng)站托管優(yōu)化
  • 做網(wǎng)站和網(wǎng)頁(yè)區(qū)別/seo黑帽教學(xué)網(wǎng)
  • 在那個(gè)網(wǎng)站可買(mǎi)做鞋子的羊毛/免費(fèi)網(wǎng)站代理訪(fǎng)問(wèn)
  • 深圳網(wǎng)絡(luò)專(zhuān)科網(wǎng)站建設(shè)/百度推廣需要多少錢(qián)
  • 天津智能網(wǎng)站建設(shè)費(fèi)用/公司網(wǎng)址
  • 百度怎么做自己的網(wǎng)站/百度知道問(wèn)答平臺(tái)
  • 網(wǎng)站名稱(chēng)是什么/網(wǎng)站優(yōu)化網(wǎng)絡(luò)推廣seo
  • 佛山網(wǎng)站建設(shè)科技公司/手機(jī)助手
  • 網(wǎng)站制作公司網(wǎng)站建設(shè)/chrome官網(wǎng)下載
  • 淘寶導(dǎo)航里的鏈接網(wǎng)站怎么做/百度建站
  • 網(wǎng)站建設(shè)系統(tǒng)開(kāi)發(fā)需要多少錢(qián)/如何提高seo關(guān)鍵詞排名
  • php的網(wǎng)站/新聞?lì)^條新聞
  • 昆明網(wǎng)站建設(shè)培訓(xùn)/寧德市政府
  • 網(wǎng)站建設(shè)制作設(shè)計(jì)營(yíng)銷(xiāo)公司四川/寧波seo網(wǎng)絡(luò)推廣優(yōu)質(zhì)團(tuán)隊(duì)