欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis?plus中如何編寫(xiě)sql語(yǔ)句

 更新時(shí)間:2022年11月28日 12:07:50   作者:bosh_rong  
這篇文章主要介紹了mybatis?plus中如何編寫(xiě)sql語(yǔ)句,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

sql語(yǔ)句是寫(xiě)在對(duì)應(yīng)的xml文件中

首先要解決maven默認(rèn)不加載xml文件的問(wèn)題

1.首先要寫(xiě)入相關(guān)配置文件

在pom 導(dǎo)入下面內(nèi)容

?<build>
? ? ? ? <resources>
? ? ? ? ? ? <resource>
? ? ? ? ? ? ? ? <directory>src/main/java</directory>
? ? ? ? ? ? ? ? <includes>
? ? ? ? ? ? ? ? ? ? <include>**/*.xml</include>
? ? ? ? ? ? ? ? </includes>
? ? ? ? ? ? </resource>
? ? ? ? ? ? <resource>
? ? ? ? ? ? ? ? <directory>src/main/resources</directory>
? ? ? ? ? ? </resource>
? ? ? ? </resources>
? ? </build>

在application中寫(xiě)入如下內(nèi)容

mybatis-plus:
? mapper-locations: classpath*:**/xml/*.xml

2.在對(duì)應(yīng)的serviceimpl中調(diào)用baseMapper 接口

應(yīng)為在mybatis plus 中對(duì)應(yīng)的serviceImpl 接口繼承自對(duì)應(yīng)的mapper接口,mapper接口又繼承自baseMapper 接口。

比如說(shuō)

baseMapper.countRegisterDay(day)

3.在mapper文件中編寫(xiě)對(duì)應(yīng)的接口

?Integer countRegisterDay(String day);

4.在對(duì)應(yīng)的xml 中編寫(xiě)sql語(yǔ)句

id 為方法的名字。resultType 為方法返回的類型

<?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.boshrong.ucentor.mapper.UcenterMemberMapper">
? ? <select id="countRegisterDay" resultType="java.lang.Integer">
? ? ? ? select count(*) from ucenter_member um where DATE (um.gmt_create)=#{day}
? ? </select>

</mapper>

注意若傳入的值有多個(gè)參數(shù)怎么解決?

比如說(shuō)方法為

?Integer countRegisterDay(String day,String time1);

sql 中獲取多個(gè)值的方法可以有兩種

1.方法一 ,通過(guò)索引獲取

#{0} 獲取day的值, #{1} 獲取time1的值

2.方法二, 通過(guò)@Param獲取

Integer countRegisterDay(@Param ("aa")String day,@Param ("bb")String time1);
  • #{aa},#{bb} 獲取
  • #{} 與 ${} 的區(qū)別
  • #{} 是預(yù)編譯處理,是占位符。 Mybatis 在處理 #{} 時(shí),會(huì)將sql 中的#{} 替換成?號(hào),調(diào)用PreparedStatement 來(lái)賦值。
  • ${} 是字符串替換,是拼接符。就是會(huì)將 KaTeX parse error: Expected 'EOF', got '#' at position 30: …Statement 來(lái)賦值。 #?方式能夠很大程度防止sql注入…方式。

mybatis plus sql語(yǔ)句集合

獲取數(shù)據(jù)庫(kù)中某個(gè)varchar字段的最大值

max(CONVERT(stat_date,UNSIGNED))

日期格式轉(zhuǎn)換

DATE_FORMAT(update_time,‘%Y-%m-%d %T')

字符串拼接

concat(#{year},‘Y')

查詢年份的當(dāng)前年份的后面一年

DATE_FORMAT(DATE_SUB(CURDATE(),interval -1 year),‘%Y')

查詢獲取當(dāng)前年份

DATE_FORMAT(CURDATE(),‘%Y')

left,right函數(shù)返回args最左邊、右邊的length個(gè)字符串

right(args, 2)

當(dāng)前日期的前三個(gè)月日期

pay_time <![CDATA[<]]> now() - INTERVAL 3 MONTH AND now()

截取某一個(gè)字段中以某個(gè)字符開(kāi)始截取

  • 以從后面開(kāi)始第一個(gè)橫杠為分割截取
SUBSTRING_INDEX( dep_name, ‘-',- 1 ) depName
  • 以第一個(gè)橫杠為分割截取
SUBSTRING_INDEX( dep_name, ‘-',1 ) depName

IFNULL() 函數(shù)

IFNULL(expression, alt_value)如果第一個(gè)參數(shù)的表達(dá)式 expression 為 NULL,則返回第二個(gè)參數(shù)的備用值。

  • 返回列表中的最大值
GREATEST(expr1, expr2, expr3, …)
  • 返回列表中的最小值
LEAST(expr1, expr2, expr3, …)
  • 計(jì)算日期 d1->d2 之間相隔的天數(shù)
DATEDIFF(d1,d2)
  • 如果表達(dá)式 expr 成立,返回結(jié)果 v1;否則,返回結(jié)果 v2。
IF(expr,v1,v2)

find_in_set(str,strlist)

  • find_in_set判斷是否包含某個(gè)字符串
  • str 要查詢的字符串
  • strlist 字段名 參數(shù)以”,”分隔 如 (1,2,6,8,10,22)
  • 匹配個(gè)字段是否為純數(shù)字 0為匹配純數(shù)字 1為匹配不是純數(shù)字
AND (TRIM(str) REGEXP ‘[^0-9.]') = 0
  • 將字符串轉(zhuǎn)換為int數(shù)字類型
CAST(right(yearmth, 2) AS SIGNED)
  • 動(dòng)態(tài)獲取數(shù)據(jù)庫(kù)某個(gè)字段來(lái)作為條件
FIND_IN_SET (year_id,(SELECT
GROUP_CONCAT(DISTINCT LEFT(字段, 4))
from table))

locate()函數(shù)

  • locate(subStr,string) :函數(shù)返回subStr在string中出現(xiàn)的位置
  • 只要找到返回的結(jié)果都大于0(即使是查詢的內(nèi)容就是最開(kāi)始部分),沒(méi)有查找到才返回0;
// 如果字符串 string 包含 subStr
locate(subStr,string) > 0
// 如果字符串 string 不包含 subStr
locate(subStr,string) = 0

locate()函數(shù)實(shí)現(xiàn)模糊查詢

select * from user where locate('王',name)

假如現(xiàn)在需求是找出所有名字中含有王,但是不姓王的人找出來(lái),我們用下面那種實(shí)現(xiàn)方式如下:

select * from user where locate('王',name,2)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • ShardingSphere JDBC強(qiáng)制路由使用的項(xiàng)目實(shí)踐

    ShardingSphere JDBC強(qiáng)制路由使用的項(xiàng)目實(shí)踐

    在某些特定場(chǎng)景下,可能需要繞過(guò)分片規(guī)則直接定位到特定的數(shù)據(jù)庫(kù)或表,這種情況下就可以使用HintRouting,本文就來(lái)介紹一下ShardingSphere JDBC強(qiáng)制路由使用的項(xiàng)目實(shí)踐,感興趣的可以了解一下
    2024-06-06
  • Spring?Boot自定義監(jiān)控指標(biāo)的詳細(xì)過(guò)程

    Spring?Boot自定義監(jiān)控指標(biāo)的詳細(xì)過(guò)程

    這篇文章主要介紹了Spring?Boot如何自定義監(jiān)控指標(biāo)?,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Java解析json報(bào)文實(shí)例解析

    Java解析json報(bào)文實(shí)例解析

    這篇文章主要介紹了Java解析json報(bào)文實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Spring Security 和Apache Shiro你需要具備哪些條件

    Spring Security 和Apache Shiro你需要具備哪些條件

    這篇文章主要介紹了Spring Security 和Apache Shiro你需要具備哪些條件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java中對(duì)象轉(zhuǎn)json字符串的幾種常用方式舉例

    java中對(duì)象轉(zhuǎn)json字符串的幾種常用方式舉例

    這篇文章主要給大家介紹了關(guān)于java中對(duì)象轉(zhuǎn)json字符串的幾種常用方式,在Java中可以使用許多庫(kù)將對(duì)象轉(zhuǎn)換為JSON字符串,其中最常用的是Jackson和Gson,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • java計(jì)算自冪數(shù)和水仙花數(shù)

    java計(jì)算自冪數(shù)和水仙花數(shù)

    對(duì)于一個(gè)正整數(shù)而言,長(zhǎng)度是n,如果它的各位上的數(shù)字的n次方之和正好等于它本身,那么我們稱這樣的數(shù)為自冪數(shù),下面使用JAVA實(shí)現(xiàn)這個(gè)方法
    2014-03-03
  • SpringCloud-Config分布式配置代碼示例

    SpringCloud-Config分布式配置代碼示例

    這篇文章主要介紹了SpringCloud-Config分布式配置代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • SpringBoot生成jar/war包的布局應(yīng)用

    SpringBoot生成jar/war包的布局應(yīng)用

    在 Spring Boot 中,"布局應(yīng)用"(Application Layout)指的是打包生成的可執(zhí)行 jar 或 war 文件中的內(nèi)容組織結(jié)構(gòu),本文給大家介紹了SpringBoot生成jar/war包的布局應(yīng)用,需要的朋友可以參考下
    2024-02-02
  • Java垃圾回收機(jī)制的finalize方法實(shí)例分析

    Java垃圾回收機(jī)制的finalize方法實(shí)例分析

    這篇文章主要介紹了Java垃圾回收機(jī)制的finalize方法,結(jié)合實(shí)例形式分析了finalize方法的特點(diǎn)及在垃圾回收機(jī)制中的相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • PowerJob的ProcessorLoader工作流程源碼解讀

    PowerJob的ProcessorLoader工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob的ProcessorLoader工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評(píng)論