亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

一、引言

Good Good Study,Day Day Up

MP自帶的條件構(gòu)造器雖然很強大,有時候也避免不了寫稍微復雜一點業(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條件構(gòu)造器,則需要如下寫法
   *
   * @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條件構(gòu)造器,則需要如下寫法
   *
   * @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);
  }

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

相關(guān)文章

  • 解決啟用 Spring-Cloud-OpenFeign 配置可刷新項目無法啟動的問題

    解決啟用 Spring-Cloud-OpenFeign 配置可刷新項目無法啟動的問題

    這篇文章主要介紹了解決啟用 Spring-Cloud-OpenFeign 配置可刷新項目無法啟動的問題,本文重點給大家介紹Spring-Cloud-OpenFeign的原理及問題解決方法,需要的朋友可以參考下
    2021-10-10
  • 解決IDEA2020.2插件lombok報錯問題(親測有效)

    解決IDEA2020.2插件lombok報錯問題(親測有效)

    這篇文章主要介紹了解決IDEA2020.2插件lombok報錯問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • java開源區(qū)塊鏈初始化創(chuàng)世區(qū)塊jdchain服務搭建

    java開源區(qū)塊鏈初始化創(chuàng)世區(qū)塊jdchain服務搭建

    這篇文章主要介紹了java開源區(qū)塊鏈初始化創(chuàng)世區(qū)塊jdchain的服務搭建步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • Flutter瀑布流仿寫原生的復用機制詳解

    Flutter瀑布流仿寫原生的復用機制詳解

    這篇文章主要給大家介紹了關(guān)于Flutter瀑布流仿寫原生的復用機制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用flutter具有一定的參考學習價值,需要的朋友可以參考下
    2021-07-07
  • 一篇文章帶你了解MySQL數(shù)據(jù)庫基礎

    一篇文章帶你了解MySQL數(shù)據(jù)庫基礎

    這篇文章主要介紹了MySql數(shù)據(jù)庫基礎知識點,總結(jié)整理了mysql數(shù)據(jù)庫基本創(chuàng)建、查看、選擇、刪除以及數(shù)據(jù)類型相關(guān)操作技巧,需要的朋友可以參考下
    2021-08-08
  • ElasticSearch 動態(tài)映射實戰(zhàn)詳解

    ElasticSearch 動態(tài)映射實戰(zhàn)詳解

    這篇文章主要為大家介紹了ElasticSearch 動態(tài)映射實戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • ThreadPoolExecutor中的submit()方法詳細講解

    ThreadPoolExecutor中的submit()方法詳細講解

    在使用線程池的時候,發(fā)現(xiàn)除了execute()方法可以執(zhí)行任務外,還發(fā)現(xiàn)有一個方法submit()可以執(zhí)行任務,本文就詳細的介紹一下ThreadPoolExecutor中的submit()方法,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04
  • 詳解springboot的三種啟動方式

    詳解springboot的三種啟動方式

    這篇文章主要介紹了詳解springboot的三種啟動方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • SpringBoot2零基礎到精通之profile功能與自定義starter

    SpringBoot2零基礎到精通之profile功能與自定義starter

    SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時也是簡化Spring的一種快速開發(fā)的腳手架,本篇讓我們一起學習profile功能與自定義starter
    2022-03-03
  • Spring cloud gateway設置context-path服務路由404排查過程

    Spring cloud gateway設置context-path服務路由404排查過程

    這篇文章主要介紹了Spring cloud gateway設置context-path服務路由404排查過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論