最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatisPlus 自定義sql語句的實現(xiàn)

 更新時間:2019年08月14日 10:13:51   作者:IT賤男  
這篇文章主要介紹了MyBatisPlus 自定義sql語句的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、引言

Good Good Study,Day Day Up

MP自帶的條件構造器雖然很強大,有時候也避免不了寫稍微復雜一點業(yè)務的sql,那么那么今天說說MP怎么自定義sql語句吧。

二、配置

自定義的sql當然是寫在XML文件中的啦,那么首先來定義xml文件的位置,在yml配置文件如下

mybatis-plus:
 # 如果是放在src/main/java目錄下 classpath:/com/*/*/mapper/*Mapper.xml
 # 如果是放在resource目錄 classpath:/mapper/**.xml
 mapper-locations: classpath:/mapper/**.xml

三、具體實現(xiàn)

使用注解實現(xiàn):

在我們Mapper接口中定義自定義方法即可。

/**
 * @Auther: IT賤男
 * @Date: 2019/6/10 14:40
 * @Description: User對象持久層
 */
public interface UserMapper extends BaseMapper<User> {
 
  /**
   *
   * 如果自定義的方法還希望能夠使用MP提供的Wrapper條件構造器,則需要如下寫法
   *
   * @param userWrapper
   * @return
   */
  @Select("SELECT * FROM user ${ew.customSqlSegment}")
  List<User> selectByMyWrapper(@Param(Constants.WRAPPER) Wrapper<User> userWrapper);
 
  /**
   * 和Mybatis使用方法一致
   * @param name
   * @return
   */
  @Select("SELECT * FROM user where name = #{name}")
  List<User> selectByName(@Param("name") String name);
 
}

使用xml文件實現(xiàn):

使用xml一定要指定xml文件所在位置

/**
 * @Auther: IT賤男
 * @Date: 2019/6/10 14:40
 * @Description: User對象持久層
 */
public interface UserMapper extends BaseMapper<User> {
 
  /**
   *
   * 如果自定義的方法還希望能夠使用MP提供的Wrapper條件構造器,則需要如下寫法
   *
   * @param userWrapper
   * @return
   */
  List<User> selectByMyWrapper(@Param(Constants.WRAPPER) Wrapper<User> userWrapper);
 
  /**
   * 和Mybatis使用方法一致
   * @param name
   * @return
   */
  List<User> selectByName(@Param("name") String name);
 
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
 
  <select id="selectByName" resultType="com.example.demo.model.User">
    SELECT * FROM user where name = #{name}
  </select>
 
  <select id="selectByMyWrapper" resultType="com.example.demo.model.User">
    SELECT * FROM user ${ew.customSqlSegment}
  </select>
 
</mapper>

測試測試:

  /**
   * 自定義sql查詢語句
   */
  @Test
  public void selectByMySelect() {
    List<User> users = userMapper.selectByName("王天風");
    users.forEach(System.out::println);
  }
 
  /**
   * 自定義sql使用Wrapper
   */
  @Test
  public void selectByMyWrapper() {
    QueryWrapper<User> wrapper = new QueryWrapper();
    wrapper.like("name", "雨").lt("age", 40);
    List<User> users = userMapper.selectByMyWrapper(wrapper);
    users.forEach(System.out::println);
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • mybatis使用雙層<foreach>循環(huán)嵌套方式

    mybatis使用雙層<foreach>循環(huán)嵌套方式

    在Mybatis中使用雙層循環(huán)嵌套插入數據可以有效減少數據庫IO操作,提高性能,通過在mapper.xml中定義雙層集合來實現(xiàn),外層集合為實體類中的集合字段,內層集合為集合字段中的另一個集合,通過這種方式,可以在業(yè)務代碼中減少循環(huán)插入的次數
    2024-09-09
  • spring-core組件詳解——PropertyResolver屬性解決器

    spring-core組件詳解——PropertyResolver屬性解決器

    這篇文章主要介紹了spring-core組件詳解——PropertyResolver屬性解決器,需要的朋友可以參考下
    2016-05-05
  • 關于Java中的dozer對象轉換問題

    關于Java中的dozer對象轉換問題

    Dozer是Java?Bean到Java?Bean映射器,它以遞歸方式將數據從一個對象復制到另一個對象,這篇文章主要介紹了Java中的dozer對象轉換的操作方法,需要的朋友可以參考下
    2022-08-08
  • Java本地緩存工具之LoadingCache的使用詳解

    Java本地緩存工具之LoadingCache的使用詳解

    緩存,在我們日常開發(fā)中是必不可少的一種解決性能問題的方法。簡單的說,cache?就是為了提升系統(tǒng)性能而開辟的一塊內存空間。本文將為大家介紹一個Java本地緩存的工具——LoadingCache,感興趣的可以了解一下
    2021-12-12
  • 詳解Spring Cloud中Hystrix 線程隔離導致ThreadLocal數據丟失

    詳解Spring Cloud中Hystrix 線程隔離導致ThreadLocal數據丟失

    這篇文章主要介紹了詳解Spring Cloud中Hystrix 線程隔離導致ThreadLocal數據丟失,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • java數據結構基礎:單,雙向鏈表

    java數據結構基礎:單,雙向鏈表

    這篇文章主要介紹了Java的數據解構基礎,希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • 清理本地Maven倉庫的方法示例

    清理本地Maven倉庫的方法示例

    這篇文章主要介紹了清理本地Maven倉庫的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • IntelliJ IDEA啟動錯誤:插件沖突處理的解決方案

    IntelliJ IDEA啟動錯誤:插件沖突處理的解決方案

    在使用 IntelliJ IDEA 進行開發(fā)時,我們可能會遇到各種啟動錯誤,本文將詳細介紹一種常見的錯誤:插件沖突,并提供解決方案,文中通過圖文和代碼介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2025-02-02
  • 詳解Java多線程編程中線程的啟動、中斷或終止操作

    詳解Java多線程編程中線程的啟動、中斷或終止操作

    在Java中start和tun方法可用被用來啟動線程,而用interrupt方法來中斷或終止線程,以下我們就來詳解Java多線程編程中線程的啟動、中斷或終止操作
    2016-07-07
  • Java連接數據庫,及增刪改查的示例

    Java連接數據庫,及增刪改查的示例

    這篇文章主要介紹了Java連接數據庫,及增刪改查的示例,幫助大家更好的利用Java處理數據,感興趣的朋友可以了解下
    2020-10-10

最新評論

庆安县| 文化| 剑河县| 琼海市| 绥化市| 邳州市| 黔江区| 昭平县| 扎赉特旗| 兴宁市| 苗栗县| 红桥区| 克山县| 确山县| 洛宁县| 洛南县| 开远市| 长丰县| 民县| 武城县| 普兰县| 霸州市| 济阳县| 新乡市| 广州市| 大姚县| 新闻| 伊吾县| 漳州市| 扎囊县| 黑水县| 新建县| 曲麻莱县| 外汇| 张掖市| 融水| 崇阳县| 于田县| 仙居县| 尚义县| 南宁市|