Springboot注解,Mybatis-語法筆記

 2023-10-15 阅读 27 评论 0

摘要:返回主鍵 1.XML方式 <insert id="bb" parameterType="XX.XX.XXEntity包" useGeneratedKeys="true" keyProperty="id">這里是insert語句 </insert> 2.注解方式,要在接口方法上加兩個注解,一個是insert

返回主鍵
1.XML方式

<insert id="bb" parameterType="XX.XX.XXEntity包" useGeneratedKeys="true" keyProperty="id">這里是insert語句
</insert> 

2.注解方式,要在接口方法上加兩個注解,一個是insert,一個是selectKey

@Insert("這里是insert語句")
@SelectKey(statement = "SELECT last_insert_id() as id", keyProperty = "id", before = false, resultType = String.class, statementType = StatementType.STATEMENT)
//entity里要有id這個屬性并且有getset方法,上面的resultType要注意,你的entity里的id是什么屬性,就寫什么,我的id是String,所以我寫String.class,如果你的是int,那么請寫Integer.class
public int insert(實體類 entity);

循環
本文展示了這樣一個業務:根據多個ID刪除多條數據

public Integer 方法名AA(@Param("bb") String[] ids);

1.Mybatis接口方式,接口方式的循環通常很好些,因為@param可以指定名字

<delete id="方法名AA" resultMap="如果是查詢記得寫返回值類型">delete from 表 where id in//如果是批量插入記得刪掉open和close屬性<foreach collection="bb" item="item" index="index" open="("separator="," close=")">#{item}</foreach>
</delete>

2.Mybatis映射方式,如果使用映射方式,bb如果不放到map中,那么mybatis會把他的名字變成list,所以如下寫,不再用item屬性了

<delete id="方法名AA" resultMap="如果是查詢記得寫返回值類型">delete from 表 where id in//如果是批量插入記得刪掉open和close屬性<foreach collection="list"  index="index" item="aaa" open="("separator="," close=")">#{list[${index}]}</foreach>
</delete>

注: 當mybatis以映射方式循環的時候,你們會發現循環語句中有個item=“aaa”,雖然我下面沒有用到這個,但是item必須寫,哪怕是item=“bbb”,item=“ccc”,必須要寫,否則mybatis報錯

加前綴后綴覆蓋
下面的例子展示了如果傳遞用戶名稱,則將用戶名稱userName和年齡userAge作為條件進行或查詢,但是由于前面有一個邏輯刪除表示is_deleted = 0,這導致如果不進行特殊處理,后面name+age無法在一個括號里,但是如果在一個括號里(所以使用prefix+suffix),并且name前面的OR要消失,所以使用prefixOverrides

select * from 表 
where
is_deleted = 0
<trim prefix="(" suffix=")" prefixOverrides="OR"><if test="userName=null and userName!=''">OR t1.`name` = #{userName}</if><if test="userAge=null and userAge!=''">OR t1.`age` = #{userAge}</if>
</trim>

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/137171.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息