您好,登錄后才能下訂單哦!
今天小編給大家分享一下mybatis的動態SQL及連接池怎么配置的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
mybatis根據傳入參數的不同來查詢。
<select id="findByCondition" parameterType="com.domain.User" resultType="com.domain.User"> select * from users where 1=1 <if test="name != null"> and name= #{name} </if> </select>
如果太多的話,就不寫where1=1.在if外面嵌套if標簽。
<select id="findByCondition" parameterType="com.domain.User" resultType="com.domain.User"> select * from users <where> <if test="name != null"> and name= #{name} </if> </where> </select>
同時,第一個if語句中的and將會被省略!!!
mybatis范圍查詢,例如select * from users where age in (11,12,13);
外部定義一個包裝類,包裝ages作為屬性,下列以id為例子(在外部定義集合來包裝)
<select id="findByRange" parameterType="com.domain.QueryVo" resultType="com.domain.User"> select * from users <where> //where子句的開頭,and或者是or,將會被where元素去除。 <if test="ids != null and ids.size()>0">這里的判斷條件是Java語句 <foreach collection="ids" open="and id in (" close=")" item="id" separator=","> #{id} </foreach> </if> </where> </select>
SQL語句 select 字段 from where id in{?}
<foreach>標簽用于遍歷集合,它的屬性;
Collection
代表要遍歷的集合元素(屬性名稱)
open
代表語句的開始部分
close
代表語句的結束部分
item
代表遍歷集合的每個元素,生成的變量名
sperator
代表元素之間的分割符
連接池:在實際開發中使用,可以減少我們獲取連接所消耗的時間。
mybatis連接池提供了3種方式的配置
在主配置文件中的DataSource屬性中配置
type
取值 POOLED采用傳統的javax.sql.DataSource規范中的連接池
UNPOLLED
雖然實現了DataSource的標準,但是沒有使用池的概念(Connection對象)
JNDI
使用服務器提供的jndi技術來取得DataSource對象。注意:如果不是web工程和maven的war工程,是不可使用的。
備注:mybatis中事務的操控,底層是通過操控Connection對象設置的。
POOLED
:從池中拿出連接,最后把連接放回池里。
UNPOOLED
創建連接,結束連接(jdbc連接方式)
① where和if標簽
② foreach循環標簽
注意事項:
③ 批量添加
④ selectKey
① 多對一查詢
A). 建表時,外鍵一定是建在多的一端。
B). 在多的一端的實體類中創建一個一的一端的對象屬性。
C). 連接查詢的sql語句
①select … from 表1 left join 表2 on 連接條件。連接條件一般就是外鍵=指向的主鍵。
② resultMap
i. id,result配置一般的屬性
ii. association標簽配置多余的字段,property和javatype屬性。子標簽id和result
② 多對一查詢如何做到修改功能
③ 一對多查詢
與多對一查詢不同的地方:
A)創建實體類時,在一的一端創建一個List屬性,List中放的是多的一端的對象。
B)詳細的resultMap配置
以上就是“mybatis的動態SQL及連接池怎么配置”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。