日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybitys 动态sql 注释_mybatis注解动态sql详解

發(fā)布時間:2024/4/18 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybitys 动态sql 注释_mybatis注解动态sql详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于mybatis已經(jīng)給大家講過很多次了,下面要接著給大家介紹mybatis注解動態(tài)sql的內(nèi)容,一起來了解一下mybatis注解開發(fā)之三種動態(tài)sql吧。

1、腳本sql

對于XML配置方式的動態(tài)SQL這里的話就不怎么講了,下面的內(nèi)容是用

的方式將他照搬過來,用注解來實現(xiàn)。

這個比較適用于xml配置轉(zhuǎn)換到注解配置。

其實,可以很明顯的看出,在java當(dāng)中寫xml可讀性和維護性真的是比較的差的,尤其是在SQL非常長的時候,超級的麻煩。

2、在方法中構(gòu)建sql

這里的話,我們借用內(nèi)部類來生成動態(tài)SQL。

增改刪有對應(yīng)的@InsertProvider、@UpdateProvider、@DeleteProvider。

這樣的話會更加的清晰一些,它比較的適合用于查詢語句不是特別的長,條件不多的場景。

但是,在寫非常長的SQL的時候,這樣的方式也是會比較的麻煩,寫到不想寫了。@Mapper

public?interface?MybatisDao

{

//使用UserDaoProvider類的findUserById方法來生成sql

@SelectProvider(type?=?UserDaoProvider.class,?method?=?"findUserById")

public?List??findUserById(User?user);

class?UserDaoProvider

{

public?String?findUserById(User?user)

{

String?sql?=?"SELECT?*?FROM?user";

if?(user.getId()?!=?null)

{

sql?+=?"?where?id?=?#{id}";

}

return?sql;

}

}

3、結(jié)構(gòu)化SQL

這里的話,將前面的內(nèi)部類進行了一下改造。public?String?findUserById(User?user)

{

return?new?SQL()

{

{

SELECT("id,name");

SELECT("other");

FROM("user");

if?(user.getId()?!=?null)

{

WHERE("id?=?#{id}");

}

if?(user.getName()?!=?null)

{

WHERE("name?=?#{name}");

}

//從這個toString可以看出,其內(nèi)部使用高效的StringBuilder實現(xiàn)SQL拼接

}

}.toString();

}

上面的一些例子都只是一些很基礎(chǔ)的用法介紹,假如你還想了解更多的用法,請繼續(xù)關(guān)注奇Q工具網(wǎng)的常見問題欄目來進行了解吧。

推薦閱讀:

總結(jié)

以上是生活随笔為你收集整理的mybitys 动态sql 注释_mybatis注解动态sql详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。