久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Mybatis使用@param注解四種情況解析

瀏覽:82日期:2023-10-22 19:52:17

一、方法有多個參數

例如:

接口方法:

@Mapperpublic interface UserMapper { Integer insert(@Param('username') String username, @Param('address') String address);}

對應的xml:

<insert parameterType='org.javaboy.helloboot.bean.User'> insert into user (username,address) values (#{username},#{address});</insert>

原因:當不使用 @Param 注解時,mybatis 是不認識哪個參數叫什么名字的,盡管在接口中定義了參數的名稱,mybatis仍然不認識。這時mybatis將會以接口中參數定義的順序和SQL語句中的表達式進行映射,這是默認的。

二、方法參數要取別名

例如

@Mapperpublic interface UserMapper { Integer insert(@Param('username') String username, @Param('address') String address);}

對應的xml:

<insert parameterType='org.javaboy.helloboot.bean.User'> insert into user (username,address) values (#{username},#{address});</insert>

三、XML 中的 SQL 使用了 $ 拼接sql

$ 會有注入的問題,但是有的時候不得不使用 $ 符號,例如要傳入列名或者表名的時候,這個時候必須要添加 @Param 注解

例如:

@Mapperpublic interface UserMapper { List<User> getAllUsers(@Param('order_by')String order_by);}

對應xml:

<select resultType='org.javaboy.helloboot.bean.User'> select * from user <if test='order_by!=null and order_by!=’’'> order by ${order_by} desc </if></select>

四、動態 SQL 中使用了參數作為變量

如果在動態 SQL 中使用參數作為變量,那么也需要 @Param 注解,即使你只有一個參數。例如如下方法:

@Mapperpublic interface UserMapper { List<User> getUserById(@Param('id')Integer id);}

對應xml:

<select resultType='org.javaboy.helloboot.bean.User'> select * from user <if test='id!=null'> where id=#{id} </if></select>

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

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 国产成人亚洲综合 | 亚洲狠狠爱 | 亚洲欧美一区二区三区在线 | 亚洲欧美成人影院 | 不卡一区二区三区视频 | 久久久999精品视频 欧美老妇交乱视频 | 久久精品欧美一区二区三区不卡 | 国产一级中文字幕 | 午夜三级在线 | 久久99这里只有精品 | 在线一区观看 | 天天操天天添 | 日韩欧美国产网站 | 亚洲一区av在线 | 午夜精品一区 | 欧美日韩一区二区在线 | a级毛片免费高清视频 | www免费网站在线观看 | 久久久久久久一区 | 狠狠的干 | 日韩视频网站在线观看 | 亚洲精品一区二区三区在线观看 | 日韩精品一区二区三区老鸭窝 | 亚洲国内精品 | av在线中文 | 成人乱人乱一区二区三区 | 亚洲a网| 乳色吐息在线观看 | 亚洲国产精品久久久 | 亚欧毛片 | 婷婷成人免费视频 | 成人性生交大片免费看中文带字幕 | 国产日韩一区二区三区 | 亚洲国产精品自拍 | 婷婷激情五月 | 欧美亚洲国产一区 | 欧洲毛片 | 日韩精品免费在线观看 | 国产精品自产拍在线观看桃花 | 91视频网址 | 成人亚洲精品 |