Mybatisplus官網詳解

一、簡介

Mybatisplus是一個基於mybatis的增強工具,可快速、安全的開發mybatis相關項目。它提供了許多實用的功能,如分頁、條件構造器、性能分析、代碼生成等。

Mybatisplus官網提供了完整的文檔、代碼示例、疑難解答等一系列資源,方便開發者學習和使用。

二、使用步驟

1. 引入依賴


<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>latest version</version>
</dependency>

2. 配置mybatisplus


mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true # 開啟駝峰命名
    use-generated-keys: true # 開啟自動生成功能

3. 創建實體類


@Data
public class User{
    private Long id;
    private String username;
    private Integer age;
}

4. 創建Mapper介面


public interface UserMapper extends BaseMapper<User>{
}

5. 基礎CRUD


// 插入操作
User user = new User();
user.setUsername("Mybatis");
user.setAge(18);
userMapper.insert(user);

// 查詢單個實體
User result = userMapper.selectById(1L);

// 更新操作
User user = userMapper.selectById(1L);
user.setUsername("Mybatisplus");
userMapper.updateById(user);

// 刪除操作
userMapper.deleteById(1L);

三、分頁查詢

1. 分頁配置


Page<User> page = new Page<>(1, 10);

2. 分頁查詢


QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.lambda().lt(User::getAge, 18);
Page<User> page = new Page<>(1, 10);
IPage<User> iPage = userMapper.selectPage(page, wrapper);
List<User> userList = iPage.getRecords();

四、條件構造器

1. 創建條件構造器


QueryWrapper<User> wrapper = new QueryWrapper<>();

2. 添加條件


wrapper.lambda().eq(User::getUsername, "Mybatisplus");

3. 執行查詢


List<User> userList = userMapper.selectList(wrapper);

五、代碼生成器

1. 配置代碼生成器


AutoGenerator generator = new AutoGenerator();
generator.setDataSource(dataSourceConfig);
generator.setGlobalConfig(globalConfig);
generator.setPackageInfo(packageConfig);
generator.setTemplate(templateConfig);
generator.setStrategy(strategyConfig);

2. 執行生成


generator.execute();

六、性能分析插件

1. 配置perfix和log類型


mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 指定logging日誌實現
    sql-log-format: lower_case # 顯示sql格式
    sql-injector: org.apache.ibatis.builder.MapperBuilderAssistant $NoInject
    cache-enabled: false
    local-cache-scope: SESSION
  mapper-locations: classpath:/mapper/*.xml
  type-aliases-package: com.baomidou.mybatisplus.sample.model
  global-config: #全局配置
    db-config:
      id-type: AUTO # 全局主鍵策略
      field-strategy: not_empty
      db-type: mysql
      logic-delete-value: 1
      logic-not-delete-value: 0
      column-like: true # CRU中參數對象FilecdLike查詢條件,默認false:為按等於匹配
      refresh-mapper: true # mapper.xml熱載入
      sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector # 默認值
      super-mapper-class: com.baomidou.mybatisplus.mapper.BaseMapper # 默認值
      cache-enabled: false # 全局緩存配置,,默認值true
    execution-analysis:
      enable: true
      close-out-param: false # 全局調試開關

2. 開啟and、in、or輸出


wrapper.lambda().and(i -> i.lt(User::getAge, 18).or().isNotNull(User::getEmail));

七、動態表名

1. 配置SqlParser


List<ISqlParser> sqlParserList = new ArrayList<>();
sqlParserList.add(new TableNameParser());
// 動態表名配置
DynamicTableNameParser dynamicTableNameParser = new DynamicTableNameParser();
dynamicTableNameParser.setTableNameHandlerMap(handlerMap);
sqlParserList.add(dynamicTableNameParser);

2. 注入SqlParser


SqlParserHandler sqlParserHandler = new SqlParserHandler();
sqlParserHandler.setSqlParserList(sqlParserList);
PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
performanceInterceptor.setSqlParserList(sqlParserList);

八、定製化

Mybatisplus官網提供了許多定製化的方法,如關鍵字處理、屬性過濾器、自定義全局操作等。請查看官網文檔,以充分利用Mybatisplus所提供的強大功能。

原創文章,作者:JADOK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372272.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JADOK的頭像JADOK
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智慧等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • 國家數字圖書館官網打不開怎麼辦?

    如果你發現無法訪問國家數字圖書館官網,可能是以下幾個方面導致的。 一、網路連接問題 首先,我們要確定自己的網路存在沒有問題。可以通過瀏覽器訪問其他網站來檢測網路連接是否正常。 二、…

    編程 2025-04-29
  • Python中文版下載官網的完整指南

    Python是一種廣泛使用的編程語言,具有簡潔、易讀易寫等特點。Python中文版下載官網是Python學習和使用過程中的重要資源,本文將從多個方面對Python中文版下載官網進行…

    編程 2025-04-29
  • 尚矽谷官網地址用法介紹

    尚矽谷是國內一家領先的技術培訓機構,提供了眾多IT職業的培訓,包括Java、Python、大數據、前端、人工智慧等方向。其官網地址為http://www.atguigu.com/。…

    編程 2025-04-29
  • MLflow官網用法介紹

    本文將從多個方面詳細闡述MLflow官網的功能和使用方法,讓讀者在學習和使用MLflow過程中更加便利。 一、介紹 MLflow是一個開源的機器學習平台,由Databricks團隊…

    編程 2025-04-29
  • Python模塊庫大全官網

    Python模塊庫大全官網是一個全面收錄Python模塊庫的網站,開發者可以在該網站中找到自己需要的模塊庫、文檔、教程等資源,提高開發效率,降低開發成本。本文將從多個方面對Pyth…

    編程 2025-04-27
  • 老虎證券app官網下載

    老虎證券是一家提供在線股票交易服務的綜合性經紀商。老虎證券app是老虎證券的官方移動應用,它可以為投資者提供包括股票、期貨、外匯和數字貨幣的多種交易服務。本文將介紹老虎證券app的…

    編程 2025-04-27
  • 保利票務官網的開發實現

    保利票務官網是一個擁有強大性能和優秀用戶體驗的在線售票平台,其前端由 HTML、CSS 和 JavaScript 組成,後台使用 PHP 和 MySQL 進行數據存儲和管理。本文將…

    編程 2025-04-27
  • OpenSwan 官網用法介紹

    OpenSwan 是一種開源 IPsec 協議,可以用於創建安全的虛擬專用網路。 一、OpenSwan 概述 OpenSwan 是一個成熟的、被廣泛使用的開源項目。它支持 IPSE…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25

發表回復

登錄後才能評論