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

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

福建省建建設(shè)行業(yè)信用評(píng)分網(wǎng)站優(yōu)化網(wǎng)站的步驟

福建省建建設(shè)行業(yè)信用評(píng)分網(wǎng)站,優(yōu)化網(wǎng)站的步驟,成品網(wǎng)站怎樣建設(shè),自己做鍵盤的網(wǎng)站學(xué)習(xí)目標(biāo)能夠基于MyBatisPlus完成標(biāo)準(zhǔn)Dao開發(fā)能夠掌握MyBatisPlus的條件查詢能夠掌握MyBatisPlus的字段映射與表名映射能夠掌握id生成策略控制能夠理解代碼生成器的相關(guān)配置一、MyBatisPlus簡(jiǎn)介MyBatisPlus(簡(jiǎn)稱MP)是基于MyBatis框架基礎(chǔ)上開發(fā)的增強(qiáng)型工…

學(xué)習(xí)目標(biāo)


能夠基于MyBatisPlus完成標(biāo)準(zhǔn)Dao開發(fā)

能夠掌握MyBatisPlus的條件查詢

能夠掌握MyBatisPlus的字段映射與表名映射

能夠掌握id生成策略控制

能夠理解代碼生成器的相關(guān)配置

一、MyBatisPlus簡(jiǎn)介


MyBatisPlus(簡(jiǎn)稱MP)是基于MyBatis框架基礎(chǔ)上開發(fā)的增強(qiáng)型工具,旨在簡(jiǎn)化開發(fā)、提高效率

開發(fā)方式

基于MyBatis使用MyBatisPlus

基于Spring使用MyBatisPlus

基于SpringBoot使用MyBatisPlus

1. 入門案例

①:創(chuàng)建新模塊,選擇Spring初始化,并配置模塊相關(guān)基礎(chǔ)信息
②:選擇當(dāng)前模塊需要使用的技術(shù)集(僅保留JDBC)
③:手動(dòng)添加MyBatisPlus起步依賴
       <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--添加mybatisplus的依賴 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency>

注意事項(xiàng)1:由于mp并未被收錄到idea的系統(tǒng)內(nèi)置配置,無法直接選擇加入

注意事項(xiàng)2:如果使用Druid數(shù)據(jù)源,需要導(dǎo)入對(duì)應(yīng)坐標(biāo)

④:制作實(shí)體類與表結(jié)構(gòu)

(類名與表名對(duì)應(yīng),屬性名與字段名對(duì)應(yīng))

新建一個(gè)數(shù)據(jù)庫(kù)mybatisplyus

⑤:設(shè)置Jdbc參數(shù)(application.yml)
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=UTCusername: rootpassword: 123456
⑥:定義數(shù)據(jù)接口,繼承BaseMapper
//使用mp,dao的寫法,只需要繼承一個(gè)父親接口就可以BaseMapper,還要注意加上泛型
@Mapper
public interface UserDao extends BaseMapper<User> {}
⑦:測(cè)試類中注入dao接口,測(cè)試功能

查詢所有

@SpringBootTest
public class TestUserDao {@Autowiredprivate UserDao userDao;//查詢所有@Testvoid testFindAll() {List<User> list = userDao.selectList(null);System.out.println("list=" +list);}}

2. MyBatisPlus概述

問題導(dǎo)入

通過入門案例制作,MyBatisPlus的優(yōu)點(diǎn)有哪些?

2.1 MyBatis介紹

  • MyBatisPlus(簡(jiǎn)稱MP)是基于MyBatis框架基礎(chǔ)上開發(fā)的增強(qiáng)型工具,旨在簡(jiǎn)化開發(fā)、提高效率

  • 官網(wǎng):https://mybatis.plus/ https://mp.baomidou.com/

2.2 MyBatisPlus特性

  • 無侵入:只做增強(qiáng)不做改變,不會(huì)對(duì)現(xiàn)有工程產(chǎn)生影響

  • 強(qiáng)大的 CRUD 操作:內(nèi)置通用 Mapper,少量配置即可實(shí)現(xiàn)單表CRUD 操作

  • 支持 Lambda:編寫查詢條件無需擔(dān)心字段寫錯(cuò)

  • 支持主鍵自動(dòng)生成

  • 內(nèi)置分頁(yè)插件

  • ……

二、標(biāo)準(zhǔn)數(shù)據(jù)層開發(fā)


1. MyBatisPlus的CRUD操作

下面用MP進(jìn)行CURD

1.1添加

//    新增
@Testvoid testAdd() {User user = new User();user.setName("黑馬程序員");user.setPassword("itheima");user.setAge(12);user.setTel("4006184000");int row = userDao.insert(user);System.out.println("row = " + row);}

1.2 刪除

這里面因?yàn)閯偛挪恍⌒亩嘣黾右粋€(gè)相同內(nèi)容 所以這里面刪除的話id就用雪花

//刪除@Testvoid testDelete() {// int row = userDao.deleteById(3);int row = userDao.deleteById(1631599267871215618L);System.out.println("row = " + row);}

我們現(xiàn)在把另一個(gè)也刪除了

1.3 修改

  //修改@Testvoid testUpdate() {//1.先查詢數(shù)據(jù)User user = userDao.selectById(2);user.setPassword("777");//2.修改int row = userDao.updateById(user);System.out.println("row = " + row);}

1.4 查詢單個(gè)

     //查詢單個(gè)@Testvoid testFindById() {User user = userDao.selectById(2);System.out.println("user = " + user);}

2. Lombok插件介紹

問題導(dǎo)入

有什么簡(jiǎn)單的辦法可以自動(dòng)生成實(shí)體類的GET、SET方法?

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

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

常用注解:==@Data==,為當(dāng)前實(shí)體類在編譯期設(shè)置對(duì)應(yīng)的get/set方法,無參/無參構(gòu)造方法,toString方法,hashCode方法,equals方法等

package com.itheima.domain;import lombok.*;
/*1 生成getter和setter方法:@Getter、@Setter生成toString方法:@ToString生成equals和hashcode方法:@EqualsAndHashCode2 統(tǒng)一成以上所有:@Data3 生成空參構(gòu)造: @NoArgsConstructor生成全參構(gòu)造: @AllArgsConstructor4 lombok還給我們提供了builder的方式創(chuàng)建對(duì)象,好處就是可以鏈?zhǔn)骄幊獭?@Builder【擴(kuò)展】*/
@Data
public class User {private Long id;private String name;private String password;private Integer age;private String tel;
}

3. MyBatisPlus分頁(yè)功能

問題導(dǎo)入

思考一下Mybatis分頁(yè)插件是如何用的?

3.1 分頁(yè)功能接口

3.2 MyBatisPlus分頁(yè)使用

①:執(zhí)行分頁(yè)查詢

Ipage 接口

用MP后 是有一個(gè)selectPage() 方法 然后這個(gè)方法傳進(jìn)去一個(gè)對(duì)象page 這里面就已經(jīng)包裝了查第幾頁(yè) 每頁(yè)查第多少條

    //分面查詢@Testvoid testFindPage() {/** @param current 當(dāng)前頁(yè)* @param size    每頁(yè)顯示條數(shù)*///1 創(chuàng)建IPage分頁(yè)對(duì)象,設(shè)置分頁(yè)參數(shù)   當(dāng)前頁(yè)為第一頁(yè)  每頁(yè)顯示條數(shù)為2條//IPage<User> page =new Page<>(1,2);//1 創(chuàng)建IPage分頁(yè)對(duì)象,設(shè)置分頁(yè)參數(shù)   當(dāng)前頁(yè)為第二頁(yè)  每頁(yè)顯示條數(shù)為2條IPage<User> page =new Page<>(2,2);//2 執(zhí)行分頁(yè)查詢IPage<User> iPage = 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è)數(shù):"+page.getPages());System.out.println("總條數(shù):"+page.getTotal());System.out.println("當(dāng)前頁(yè)數(shù)據(jù):"+page.getRecords());}}

②:設(shè)置分頁(yè)攔截器作為Spring管理的bean

@Configuration
public class MybatisPlusConfig {/*配置分頁(yè)攔截器,需要打上@Bean的注解,暴露給spring使用*/@Beanpublic MybatisPlusInterceptor mpi(){//1 創(chuàng)建MybatisPlus攔截器對(duì)象MybatisPlusInterceptor mpi  =new MybatisPlusInterceptor();//2 添加分頁(yè)攔截器mpi.addInnerInterceptor(new PaginationInnerInterceptor());//返回MyBatisplus的攔截器對(duì)象return mpi;}
}

重新運(yùn)行發(fā)現(xiàn) 這回正常了

3.3 開啟MyBatisPlus日志

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=UTCusername: rootpassword: 123456
# 開啟mp的日志(輸出到控制臺(tái))
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3.4 解決日志打印過多問題

3.4.1 取消初始化spring日志打印

做法:在resources下新建一個(gè)logback.xml文件,名稱固定,內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration></configuration>

關(guān)于logback參考播客:https://www.jianshu.com/p/75f9d11ae011

3.4.2 取消SpringBoot啟動(dòng)banner圖標(biāo)
spring:main:banner-mode: off # 關(guān)閉SpringBoot啟動(dòng)圖標(biāo)(banner)
3.4.3 取消MybatisPlus啟動(dòng)banner圖標(biāo)
# mybatis-plus日志控制臺(tái)輸出
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:banner: off # 關(guān)閉mybatisplus啟動(dòng)圖標(biāo)

三、DQL編程控制


環(huán)境準(zhǔn)備

1. 條件查詢方式

  • MyBatisPlus將書寫復(fù)雜的SQL查詢條件進(jìn)行了封裝,使用編程的形式完成查詢條件的組合

1.1 條件查詢

1.1.1 方式一:按條件查詢

http://aloenet.com.cn/news/47590.html

相關(guān)文章:

  • 施工企業(yè)準(zhǔn)則長(zhǎng)沙官網(wǎng)seo技巧
  • 哪里做網(wǎng)站一套一百灰色行業(yè)怎么推廣引流
  • 建設(shè)工程合同備案是在網(wǎng)站上嗎國(guó)外搜索引擎網(wǎng)站
  • 美食網(wǎng)站制作模板網(wǎng)站流量排名查詢工具
  • 網(wǎng)站建設(shè)的關(guān)鍵詞網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn)教程
  • 傳動(dòng)設(shè)備 技術(shù)支持 東莞網(wǎng)站建設(shè)數(shù)據(jù)分析網(wǎng)頁(yè)
  • 公眾號(hào)電影網(wǎng)站怎么做搜索引擎優(yōu)化技術(shù)都有哪些
  • 一般做網(wǎng)站要多少錢怎樣優(yōu)化網(wǎng)站排名靠前
  • 濟(jì)南網(wǎng)站建設(shè)公司有哪些廣州seo優(yōu)化費(fèi)用
  • 裝修網(wǎng)平臺(tái)品牌seo培訓(xùn)
  • 上海網(wǎng)站建設(shè)方案2021年年度關(guān)鍵詞
  • 陜西中洋建設(shè)有限公司網(wǎng)站自己怎么做關(guān)鍵詞優(yōu)化
  • 三站合一的網(wǎng)站怎么做教程找培訓(xùn)機(jī)構(gòu)的app
  • 手機(jī)社區(qū)網(wǎng)站模板求網(wǎng)址
  • 網(wǎng)站域名自己做百度經(jīng)驗(yàn)官網(wǎng)
  • 做設(shè)計(jì)什么設(shè)計(jì)比較好的網(wǎng)站開魯網(wǎng)站seo
  • 怎樣用織夢(mèng)做音樂網(wǎng)站百度導(dǎo)航如何設(shè)置公司地址
  • 蘇州網(wǎng)站開發(fā)公司招聘網(wǎng)頁(yè)制作作業(yè)100例
  • 轉(zhuǎn)轉(zhuǎn)怎么做釣魚網(wǎng)站素材網(wǎng)
  • 梁山城鄉(xiāng)建設(shè)局網(wǎng)站網(wǎng)絡(luò)輿情分析
  • 產(chǎn)品展示網(wǎng)站模板東莞市網(wǎng)站seo內(nèi)容優(yōu)化
  • wordpress主題插件seo工程師
  • wordpress加一個(gè)字段seo外鏈推廣
  • 杭州的網(wǎng)站建設(shè)靜態(tài)網(wǎng)站開發(fā)
  • 廣州商城建網(wǎng)站渠道搜索排名優(yōu)化軟件
  • ecshop網(wǎng)站模板手機(jī)優(yōu)化大師
  • 做100個(gè)網(wǎng)站關(guān)鍵詞優(yōu)化軟件有哪些
  • 魔方網(wǎng)站建設(shè)網(wǎng)站制作網(wǎng)站關(guān)鍵詞優(yōu)化報(bào)價(jià)
  • 現(xiàn)在建網(wǎng)站seo關(guān)鍵詞優(yōu)化排名外包
  • 商城網(wǎng)站建設(shè)經(jīng)驗(yàn)seo工具軟件