中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

鄭州網(wǎng)站制作推廣公司抖音推廣合作方式

鄭州網(wǎng)站制作推廣公司,抖音推廣合作方式,幫別人做app網(wǎng)站門戶的兼職,博客網(wǎng)站開發(fā)文章目錄 1.MyBatis-plus基礎(chǔ)1.1.mybatis-plus簡介1.2.基本使用1.3.注解映射主鍵生成策略 1.4.命名轉(zhuǎn)換問題1.5.關(guān)閉命名轉(zhuǎn)換功能 2.BaseMapper核心接口 1.MyBatis-plus基礎(chǔ) 1.1.mybatis-plus簡介 MyBatis-Plus(簡稱 MP)是一個 MyBatis的增強(qiáng)工具&…

文章目錄

  • 1.MyBatis-plus基礎(chǔ)
    • 1.1.mybatis-plus簡介
    • 1.2.基本使用
    • 1.3.注解映射
      • 主鍵生成策略
    • 1.4.命名轉(zhuǎn)換問題
    • 1.5.關(guān)閉命名轉(zhuǎn)換功能
  • 2.BaseMapper核心接口

1.MyBatis-plus基礎(chǔ)

1.1.mybatis-plus簡介

MyBatis-Plus(簡稱 MP)是一個 MyBatis的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生。

MyBatis-plus官網(wǎng):https://baomidou.com/

特點:

  1. 潤物無聲:只做增強(qiáng)不做改變,引入它不會對現(xiàn)有工程產(chǎn)生影響,如絲般順滑。
  2. 效率至上:只需簡單配置,即可快速進(jìn)行單表 CRUD 操作,從而節(jié)省大量時間。
  3. 豐富功能:代碼生成、自動分頁、邏輯刪除、自動填充等功能一應(yīng)俱全

1.2.基本使用

  1. 插入依賴
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version>
</dependency>
  1. 配置文件,這里只配置了數(shù)據(jù)庫,可以加上mybatis-plus加入相關(guān)配置,也可以單獨創(chuàng)建一個java配置類,專門用于配置mybatis-plus
# DataSource Config
spring:datasource:driver-class-name: org.h2.Driverusername: rootpassword: testsql:init:schema-locations: classpath:db/schema-h2.sqldata-locations: classpath:db/data-h2.sql
  1. 編寫實體類
@Data
public class User {private Long id;private String name;private Integer age;private String email;
}
  1. 編寫Mapper接口類UserMapper
public interface UserMapper extends BaseMapper<User> {}

要想讓spring知道這個bean,有倆種方式

  1. 在Mapper接口上加上@Mapper注解,自動注入(推薦)
  2. 在啟動類添加@MapperScan掃描注解,掃描Mapper文件夾

1.3.注解映射

上面實例中,實體類名與表名,包括屬性名與字段名都是完全一致的,所以mybatis-plus是可以識別的。但在實際開發(fā)中,很有可能會出現(xiàn)表名與實體類名不一致,或者屬性名與字段名不一致的情況。此時就需要使用注解來進(jìn)行映射。

● @TableName:表名注解,標(biāo)識實體類對應(yīng)的表。
● @TableId:主鍵注解(可以使用 type=IdType.AUTO 形式指定主鍵生成策略)
● @TableField:字段注解(非主鍵)

一般在代碼中,實體類應(yīng)該跟數(shù)據(jù)庫中字段名保持一致,這是規(guī)范做法

主鍵生成策略

主鍵生成策略類型描述
AUTO數(shù)據(jù)庫 ID 自增
INPUTinsert 前自行 set 主鍵值
ASSIGN_ID分配 ID(主鍵類型為 Number(Long 和 Integer)或 String)
ASSIGN_UUID分配 UUID,主鍵類型為 String

使用對應(yīng)策略時,要注意數(shù)據(jù)庫中主鍵屬性與對應(yīng)策略保持一致,否則無法應(yīng)用,如果第一次Snowflake生成之后刪掉后面應(yīng)用策略的時候還是生成Snowflake,需要把數(shù)據(jù)庫對應(yīng)表刪除重新建

1.4.命名轉(zhuǎn)換問題

在實際開發(fā)中,項目中的類名、屬性名,包括數(shù)據(jù)庫中的表名、字段名,這些命名要嚴(yán)格遵守規(guī)范。一般來說:

● 在數(shù)據(jù)庫設(shè)計中,由于數(shù)據(jù)庫不區(qū)分大小寫,所以都采用下劃線命名法。
● 在java中,類名都采用帕斯卡命名法(大駝峰),屬性名都采用駝峰命名法。

在配置文件加入:

# mybatis-plus配置
mybatis-plus:configuration:# 駝峰命名map-underscore-to-camel-case: true# 日志log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:id-type: auto

可以開啟mybatis-plus的駝峰命名
日志可以使運行時控制臺打印輸出的SQL語句

1.5.關(guān)閉命名轉(zhuǎn)換功能

如果數(shù)據(jù)庫中沒有采用下劃線命名法,那么可以在SpringBoot的application.yml配置文件中關(guān)閉此功能:

mybatis-plus:configuration:map-underscore-to-camel-case: false

默認(rèn)開啟

2.BaseMapper核心接口

/*** Mapper 繼承該接口后,無需編寫 mapper.xml 文件,即可獲得CRUD功能*/
public interface BaseMapper<T> extends Mapper<T> {/*** 插入一條記錄* @param entity 實體對象*/int insert(T entity);/*** 根據(jù) ID 刪除* @param id 主鍵ID*/int deleteById(Serializable id);/*** 根據(jù)實體(ID)刪除* @param entity 實體對象*/int deleteById(T entity);/*** 根據(jù) columnMap 條件,刪除記錄* @param columnMap 表字段 map 對象*/int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);/*** 根據(jù) entity 條件,刪除記錄* @param queryWrapper 實體對象封裝操作類(可以為 null,里面的 entity 用于生成 where 語句)*/int delete(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);/*** 刪除(根據(jù)ID或?qū)嶓w 批量刪除)* @param idList 主鍵ID列表或?qū)嶓w列表(不能為 null 以及 empty)*/int deleteBatchIds(@Param(Constants.COLLECTION) Collection<?> idList);/*** 根據(jù) ID 修改* @param entity 實體對象*/int updateById(@Param(Constants.ENTITY) T entity);/*** 根據(jù) whereEntity 條件,更新記錄* @param entity        實體對象 (set 條件值,可以為 null)* @param updateWrapper 實體對象封裝操作類(可以為 null,里面的 entity 用于生成 where 語句)*/int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);/*** 根據(jù) ID 查詢* @param id 主鍵ID*/T selectById(Serializable id);/*** 查詢(根據(jù)ID 批量查詢)* @param idList 主鍵ID列表(不能為 null 以及 empty)*/List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);/*** 查詢(根據(jù) columnMap 條件)* @param columnMap 表字段 map 對象*/List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);/*** 根據(jù) entity 條件,查詢一條記錄* <p>查詢一條記錄,例如 qw.last("limit 1") 限制取一條記錄, 注意:多條數(shù)據(jù)會報異常</p>* @param queryWrapper 實體對象封裝操作類(可以為 null)*/default T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper) {List<T> ts = this.selectList(queryWrapper);if (CollectionUtils.isNotEmpty(ts)) {if (ts.size() != 1) {throw ExceptionUtils.mpe("One record is expected, but the query result is multiple records");}return ts.get(0);}return null;}/*** 根據(jù) Wrapper 條件,判斷是否存在記錄* @param queryWrapper 實體對象封裝操作類* @return*/default boolean exists(Wrapper<T> queryWrapper) {Long count = this.selectCount(queryWrapper);return null != count && count > 0;}/*** 根據(jù) Wrapper 條件,查詢總記錄數(shù)* @param queryWrapper 實體對象封裝操作類(可以為 null)*/Long selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);/*** 根據(jù) entity 條件,查詢?nèi)坑涗? @param queryWrapper 實體對象封裝操作類(可以為 null)*/List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);/*** 根據(jù) Wrapper 條件,查詢?nèi)坑涗? @param queryWrapper 實體對象封裝操作類(可以為 null)*/List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);/*** 根據(jù) Wrapper 條件,查詢?nèi)坑涗? <p>注意: 只返回第一個字段的值</p>* @param queryWrapper 實體對象封裝操作類(可以為 null)*/List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);/*** 根據(jù) entity 條件,查詢?nèi)坑涗?#xff08;并翻頁)* @param page         分頁查詢條件(可以為 RowBounds.DEFAULT)* @param queryWrapper 實體對象封裝操作類(可以為 null)*/<P extends IPage<T>> P selectPage(P page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);/*** 根據(jù) Wrapper 條件,查詢?nèi)坑涗?#xff08;并翻頁)* @param page         分頁查詢條件* @param queryWrapper 實體對象封裝操作類*/<P extends IPage<Map<String, Object>>> P selectMapsPage(P page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
}

查看BaseMapper核心接口的源代碼,這里詳細(xì)說明了封裝的增刪改查方法

http://www.risenshineclean.com/news/21787.html

相關(guān)文章:

  • 做影視網(wǎng)站有什么風(fēng)險如何讓百度收錄
  • 江蘇宏澄建設(shè)有限公司網(wǎng)站百度秒收錄技術(shù)最新
  • 百度關(guān)鍵詞優(yōu)化多少錢seo優(yōu)化技術(shù)教程
  • 樹在線網(wǎng)頁制作網(wǎng)站今日足球最新預(yù)測比分
  • 數(shù)據(jù)資源網(wǎng)站如何做企業(yè)策劃咨詢公司
  • 想讓一個網(wǎng)站上線需要怎么做營銷手機(jī)系統(tǒng)安裝
  • 可以做外鏈的圖片網(wǎng)站成都網(wǎng)絡(luò)營銷推廣公司
  • 如何做視頻網(wǎng)站流程圖關(guān)于營銷的最新的新聞
  • 專做電器的網(wǎng)站域名注冊阿里云
  • 163企業(yè)郵箱收費標(biāo)準(zhǔn)一年多少錢上海谷歌seo推廣公司
  • iis7.5 部署網(wǎng)站寄生蟲seo教程
  • 做素描的網(wǎng)站百度排名點擊軟件
  • wordpress插件更新保留修改寧波優(yōu)化推廣選哪家
  • 有沒有免費做網(wǎng)站的百度電話客服24小時人工服務(wù)熱線
  • 得力文具網(wǎng)站建設(shè)策劃書2023搜索最多的關(guān)鍵詞
  • 武漢光谷新聞最新消息上海專業(yè)的seo推廣咨詢電話
  • 網(wǎng)站建設(shè)最貴服務(wù)商企業(yè)培訓(xùn)系統(tǒng)
  • 怎樣可以做網(wǎng)站培訓(xùn)機(jī)構(gòu)網(wǎng)站制作
  • 商城網(wǎng)站 報價 方案優(yōu)化建站
  • 公司門戶網(wǎng)站該怎么做seo建站營銷
  • 企業(yè)網(wǎng)站功能模塊長春做網(wǎng)站推廣的公司
  • 營銷型網(wǎng)站建設(shè)教學(xué)淘寶優(yōu)秀軟文范例100字
  • 億瑪酷網(wǎng)站建設(shè)域名注冊新網(wǎng)
  • 網(wǎng)絡(luò)營銷中自建網(wǎng)站平臺推廣方式
  • 鞍山建設(shè)局的網(wǎng)站seo快速排名系統(tǒng)
  • 專門做微信推送的網(wǎng)站廣東疫情動態(tài)人民日報
  • wordpress 多語言切換東莞seo排名外包
  • 做鉆石的網(wǎng)站如何推廣我的網(wǎng)站
  • quercus wordpress長沙網(wǎng)站優(yōu)化價格
  • 網(wǎng)站的做公司鄭州seo建站