mybatis中SQL塊使用/動態條件查詢
<!-- 欄位 -->
<sql id="field">
`id`,
`username`,
`password`
</sql>
使用:
<include refid="field"/> <pre name="code" class="java"><!-- 通過一個ID搜尋 --> <select id="getById" parameterType="int" resultType="UserPojo"> SELECT <include refid="field"/> FROM user WHERE id = #{id} </select>
或者
<sql id="dynamicCondition"> <if test="templateType != null"> AND r.template_type=#{templateType} </if> <if test="roleType != null"> AND r.role_type=#{roleType} </if> <if test="trialId != null"> AND r.trial_id= #{trialId} </if> <if test="status != null"> AND r.status = #{status} </if> <if test="typeId != null"> AND r.type_id= #{typeId} </if> <if test="keyWords != null"> AND r.org_name like #{keyWords} </if> <if test="schoolType != null"> AND r.school_type = #{schoolType} </if> <if test="orgId != null "> AND r.org_id = #{orgId} </if> <if test="orgIdList != null "> AND r.org_id in (${orgIdList}) </if> </sql>
使用:
<select id="getCountyListByCityId" resultMap="reportVOMap" parameterType="map"> select DISTINCT(r.org_id) ,r.org_name,r.view_url from tarea t INNER JOIN report_divided_html_liususu r on t.id = r.org_id where t.pid = #{areaId} <include refid="dynamicCondition" /> </select>
或者:
<sql id="dynamicWhere">
<where>
<if test="@[email protected](id)"> AND id =#{id} </if>
<if test="@[email protected](orgId)"> AND org_id = #{orgId} </if>
<if test="@[email protected](orgName)"> AND org_name LIKE #{orgName} </if>
<if test="@[email protected](templateType)"> AND template_type = #{templateType} </if>
<if test="@[email protected](roleType)"> AND role_type = #{roleType} </if>
<if test="@[email protected](trialId)"> AND trial_id = #{trialId} </if>
<if test="@[email protected](typeId)"> AND type_id LIKE #{typeId} </if>
<if test="@[email protected](viewUrl)"> AND view_url LIKE #{viewUrl} </if>
<if test="@[email protected](reportName)"> AND report_name LIKE #{reportName} </if>
<if test="@[email protected](provinceId)"> AND province_id =#{provinceId} </if>
<if test="@[email protected](provinceName)"> AND province_name = #{provinceName} </if>
<if test="@[email protected](cityId)"> AND city_id =#{cityId} </if>
<if test="@[email protected](cityName)"> AND city_name LIKE #{cityName} </if>
<if test="@[email protected](countyId)"> AND county_id =#{countyId} </if>
<if test="@[email protected](countyName)"> AND county_name LIKE #{countyName} </if>
<if test="@[email protected](generatedTime)"> AND generated_time =#{generatedTime} </if>
<if test="@[email protected](begingeneratedTime)"> AND generated_time >=#{begingeneratedTime,jdbcType=TIMESTAMP} </if>
<if test="@[email protected](endgeneratedTime)"> AND generated_time <![CDATA[ <#{endgeneratedTime,jdbcType=TIMESTAMP}]]> </if>
<if test="@[email protected](generatedUserId)"> AND generated_user_id =#{generatedUserId} </if>
<if test="@[email protected](generatedUserName)"> AND generated_user_name LIKE #{generatedUserName} </if>
<if test="@[email protected](releaseTime)"> AND release_time =#{releaseTime} </if>
<if test="@[email protected](beginreleaseTime)"> AND release_time >=#{beginreleaseTime,jdbcType=TIMESTAMP} </if>
<if test="@[email protected](endreleaseTime)"> AND release_time <![CDATA[ <#{endreleaseTime,jdbcType=TIMESTAMP}]]> </if>
<if test="@[email protected](releaseUserId)"> AND release_user_id =#{releaseUserId} </if>
<if test="@[email protected](releaseUserName)"> AND release_user_name LIKE #{releaseUserName} </if>
<if test="@[email protected](status)"> AND status =#{status} </if>
</where>
</sql>
使用:
<select id="queryListCount" parameterType="map" resultType="Integer">
select count(id) from report_divided_html
<include refid="dynamicWhere" />
</select>
相關推薦
mybatis中SQL塊使用/動態條件查詢
<!-- 欄位 --> <sql id="field"> `id`, `username`, `password` </sql> 使用:<include refid="field"/>
SpringBoot中Example的動態條件查詢
一、無匹配器的情況: Person person = new Person();person.setName("test");... Example<Person> ex = Example.of(person); //動態查詢personRepository.findAll(ex); pe
Mybatis plus中一個框多條件查詢 SQL拼接
條件查詢 filter array ryu toc suse return 多條 pen 遇到多條件查詢時,只用框架自帶的方法搞不定,只能自己寫方法拼接 EntityWrapper<YcejShopEntity> wrapper = new EntityWra
Mybatis中的update動態SQL語句 <trim></trim> 用法
color 單獨 null 多個 ride 逗號 myba 不用 log Mybatis Mapper中文件中 update時,需要set設置多個字段,有時逗號處理時,會報錯誤,所以會使用到<trim></trim> 使用trim就是為了刪掉最後
mybatis中sql語句查詢操作
java 拼接 tca 指定 lose pan 添加 fill test 動態sql where if where可以自動處理第一個and。 <!-- 根據id查詢用戶信息 --> <!-- public User findUse
mybatis動態條件查詢和翻頁查詢的例子
繼續測試動態查詢的語句和翻頁查詢語句。 Test3.java原始碼: package domain; import java.io.IOException; import java.io.Reader; import java.util.H
mybatis的動態條件查詢
如何動態查詢? 當我沒有接觸到mybatis的時候一般的條件查詢就是通過後臺來判斷引數分別執行不同的sql語句來得到我們想要的資料(反正我個人是這個樣子的,不知道你們是不是這個樣子啊),從剛開始對著mybatis的使用者手冊開始的時候到後來對動態條件查詢的描述
關於mybatis中批量插入和批量查詢的sql語句查詢
批量查詢 <select id="findJobInfoByIds" parameterType="java.util.List" resultType="jobInfoDO"> <include refid="jobinfo-select-c
第四章 PL/SQL塊 動態查詢語句和異常處理 練習題答案
動態執行SQL語句: 1、用PLSQL給emp新增dname列,然後更新這個列的資料; 異常和動態執行SQL部分: declare sql_stmt1 varchar2(200); –動態SQL語句 sql_stmt2 varchar2(200);
Mybatis中的update動態SQL語句
Mybatis中的CRUD操作(增刪改查)中,簡單的SQL操作比較直觀,如查詢操作: <select id="findBySrcId" resultMap="entityRelationResultMap"> SELECT * FROM ENTITY_REL
Mybatis中sql語句中的in查詢,一定要判斷null的情況
不嚴謹的寫法,可能會報錯:in (),這種情況不符合mysql的語法。 select from loanwhere LOAN_ID in <foreach item="item" index
mybatis中sql標籤、where標籤、foreach標籤用法
<sql id="query_user_where"> <!-- 如果 userQueryVo中傳入查詢條件,再進行sql拼接--> <!-- test中userCustom.username表示從userQueryVo讀取屬性值--> &l
常用mybatis中sql寫法
目錄 1.時間處理 2.in操作包含大於1000 3.oracle批量處理 4.orcle模糊查詢 (左模糊,全模糊) 1.時間處理 <if test="timeLimitStart != null and timeLimitEnd !=
MyBatis中 sql語句中include標籤的使用
<!-- 1.先定義用於select查詢公用抽取的列 --> <sql id="columns"> id,name,sex,birth
spring jpa動態條件查詢並分頁
@GetMapping("/api/listPage") @ResponseBody public Map<String, Object> listPage(@RequestParam(value = "pageNumber", defaultV
Mybatis 中 Oracle 的拼接模糊查詢
一、結論 這裡先給大家看一下結論 Oracle 中,拼接模糊查詢的正確寫法 SELECT A.USER_ID, A.USER_NAME FROM T_USER A AND A.
Mybatis中SQL效能優化注意事項
Mybatis SQL效能調優 1. Mapper層引數為Map,由Service層負責過載 Mapper由於機制的問題,不能過載,引數一般設定成Map,但這樣會使引數變得模糊,如果想要使程式碼變得清晰,可以通過service層來實現過載的目的,對外提
mybatis中sql語句中的#和$
一直寫mybatis的sql語句,當時想只要實現它的功能就行了,也沒過多的去理解; 首先我們大家都知道#和$都是用來傳值的,但他們之間是怎麼區分的呢?什麼時候用哪個好呢? 1、#將傳入的資料都當成字串
MyBatis中 sql標籤和include標籤的使用
<sql> 和 <include> <sql>用來封裝SQL語句, <include>來呼叫 程式碼片段:<sql id="select"&g
mybatis中sql語句中使用大於小於號方法
目的: mapper檔案中如何使用大於小於號 例項:查詢語句 <select id="queryInfo" parameterType="com.Time" resultType