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

MyBatis?@Select注解介紹:基本用法與動(dòng)態(tài)SQL拼寫方式

 更新時(shí)間:2022年07月11日 10:44:26   作者:MyBatis中文官網(wǎng)  
這篇文章主要介紹了MyBatis?@Select注解介紹:基本用法與動(dòng)態(tài)SQL拼寫方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1、@Select注解基本用法

@Select注解的目的是為了取代xml中的select標(biāo)簽,只作用于方法上面。

下面看一下@Select注解的源碼介紹:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Select
{
? ? String[] value();
}

從上述可以看到兩點(diǎn)信息:

(1)@Select注解只能修飾方法

(2)@Select注解的值是字符數(shù)組。

所以,@Select注解的用法是這樣的:

@Select({ "select * from xxx", "select * from yyy" })
Person selectPersonById(Integer id);

雖然@Select注解的值是字符數(shù)組,但是真正生效的應(yīng)該是最后那條SQL語(yǔ)句。這一點(diǎn)請(qǐng)大家要留意一下。

2、@Select注解動(dòng)態(tài)SQL拼寫

普通的字符串值,只能實(shí)現(xiàn)變量的替換功能,如下所示,

@Select("select * from t_person where id = #{id}")
Person selectPersonById(Integer id);

如果要想實(shí)現(xiàn)復(fù)雜的邏輯判斷,則需要使用標(biāo)簽,如下所示:

@Select("<script> select * from t_person where id = #{id}?
<when test='address !=null'> and address = #{address}?
</when> </script>")
Person selectPersonById(Integer id);

其實(shí),標(biāo)簽并非是@Select注解專用的,其他的注解,例如@Insert,@Update等等,都可以使用的。

@Select動(dòng)態(tài)參數(shù)參考

今天發(fā)現(xiàn)一個(gè)問題,使用標(biāo)簽進(jìn)行查詢語(yǔ)句的拼接時(shí),逗號(hào)和引號(hào)老處理不好,所以在此記錄下,供以后參考

    @Select("<script>" +
            " select * from tb_crowd_fund_person_record a,tb_crowd_fund_info b where b.id=a.crowd_fund_info_id " +
            " <if test='activeStatus != null and activeStatus != \"\"'> "+
            "  and b.active_status=#{activeStatus} " +
            " </if> " +
            " <if test='createUser != null and createUser != \"\"'> "+
            "  and a.create_user=#{createUser} " +
            " </if> " +
            "</script>")
    List<String> findByType(Map<String,String> map);

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

相關(guān)文章

  • JAVA Integer類常用方法解析

    JAVA Integer類常用方法解析

    這篇文章主要介紹了JAVA Integer類常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Java GZIPOutputStream流壓縮文件的操作

    Java GZIPOutputStream流壓縮文件的操作

    這篇文章主要介紹了Java GZIPOutputStream流壓縮文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2021-02-02
  • jstack配合top命令分析CPU飆高、程序死鎖問題

    jstack配合top命令分析CPU飆高、程序死鎖問題

    記得前段時(shí)間,同事說(shuō)他們測(cè)試環(huán)境的服務(wù)器cpu使用率一直處于100%,本地又沒有什么接口調(diào)用,為什么會(huì)這樣?cpu使用率居高不下,自然是有某些線程一直占用著cpu資源,那又如何查看占用cpu較高的線程
    2021-09-09
  • JAVA多線程編程實(shí)例詳解

    JAVA多線程編程實(shí)例詳解

    這篇文章主要介紹了JAVA多線程編程,結(jié)合實(shí)例形式總結(jié)分析了多線程、鎖、線程池等相關(guān)原理及使用技巧,需要的朋友可以參考下
    2019-09-09
  • JDK 5 提供的注解:Target、Inherited和Documented的區(qū)別

    JDK 5 提供的注解:Target、Inherited和Documented的區(qū)別

    這篇文章主要介紹了JDK 5 提供的注解:Target、Inherited和Documented的區(qū)別,需要的朋友可以參考下
    2016-02-02
  • 詳解Java中native方法的使用

    詳解Java中native方法的使用

    native是與C++聯(lián)合開發(fā)的時(shí)候用的!使用native關(guān)鍵字說(shuō)明這個(gè)方法是原生函數(shù),也就是這個(gè)方法是用C/C++語(yǔ)言實(shí)現(xiàn)的,并且被編譯成了DLL,由java去調(diào)用。本文給大家介紹java 中native方法使用,感興趣的朋友一起看看吧
    2020-09-09
  • Java環(huán)境下高德地圖Api的使用方式

    Java環(huán)境下高德地圖Api的使用方式

    這篇文章主要介紹了Java環(huán)境下高德地圖Api的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java類的初始化順序知識(shí)點(diǎn)總結(jié)

    Java類的初始化順序知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Java類的初始化順序知識(shí)點(diǎn)總結(jié),需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • Spring boot集成redis lettuce代碼實(shí)例

    Spring boot集成redis lettuce代碼實(shí)例

    這篇文章主要介紹了Spring boot集成redis lettuce代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • java基礎(chǔ)的詳細(xì)了解第一天

    java基礎(chǔ)的詳細(xì)了解第一天

    這篇文章對(duì)Java編程語(yǔ)言的基礎(chǔ)知識(shí)作了一個(gè)較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考,希望能給你帶來(lái)幫助
    2021-08-08

最新評(píng)論

韩城市| 丹棱县| 东莞市| 五常市| 儋州市| 河源市| 芮城县| 尉氏县| 田林县| 哈尔滨市| 东丰县| 阿克苏市| 平潭县| 合山市| 茂名市| 沐川县| 南昌县| 曲沃县| 阿克苏市| 道孚县| 宿州市| 白朗县| 浏阳市| 岑溪市| 蕉岭县| 望都县| 财经| 镇赉县| 景泰县| 天津市| 仲巴县| 望江县| 道真| 湟源县| 会东县| 河东区| 广昌县| 涿鹿县| 高青县| 文昌市| 竹北市|