JdbcTemplate條件in的SQL寫法
一般大家習慣的用法如下:
public List<Map<String, Object>> queryByFundid(int fundId) {
String sql = "SELECT * FROM t_freeze_detail WHERE fund_id = ? AND flag = ? AND freeze_state = ?";
return jt.queryForList(sql, new Object[]{fundId, Const.FLAG_NORMAL, FreezeDetailBean.FREEZE_STATUS_FROZEN});
}
通過問號的順序,在jt(JdbcTemplate).queryForList後將引數對號入座。避免程式被注入。
但是當我們使用in的時候,這種方法就不好用了,相信你想過,用List匹配問號。你會發現出現這種的SQL:
select * from user where id in ([1,2])
執行報錯。
/**
* 根據條件刪除
*
* @author GaoPeng
* @param freezeTypeList
* @return
*/
public int deleteRaiseRiskByCondition (int fundId, List<Integer> freezeTypeList) {
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jt.getDataSource());
Map<String, Object> params = new HashMap<String, Object>();
params.put("fundId", fundId);
params.put("freezeType" , freezeTypeList);
String sql = "delete from t_freeze_detail where fund_id=:fundId and freeze_type in (:freezeType)";
return namedParameterJdbcTemplate.update(sql, params);
}
這我用了一個delete的例子,其他的類似,大家舉一反三。
程式中用了NamedParameterJdbcTemplate類,然後通過:freezeType方式進行引數的匹配。
相關推薦
JdbcTemplate條件in的SQL寫法
一般大家習慣的用法如下: public List<Map<String, Object>> queryByFundid(int fundId) { String sql = "SELECT *
sql語句多條件簡單寫法
inner 寫法 color clas alt ren .cn log != 比如用戶可以按姓名跟添加時間任意情況搜索 拼接sql語句可以這樣寫 string sql1 = @"SELECT dbo.RenYuan.Name,
JPA常用查詢條件的寫法
一對多 **predicates.add(root.join(root.getModel().getSet("libarySet", Libary.class)).get("id").in(ids));** 布林型別 pre
css :not的多個條件的寫法
:not 偽類選擇器可以篩選不符合表示式的元素 例子 table tbody tr:not(:first-child):not(:last-child) td { text-align:
C標籤和s標籤的對比,特別是裡面的if判斷條件的寫法
struts2標籤有if…..else <s:if></if> <s:else></s:else> 如果要用c標籤來表示if…..else 的效果 <c:choose>
sql-case,when的多條件組合寫法
1.decode 寫法簡介,只能寫表示式。 例:decode(表示式,條件1,值1,條件2,值2··· 預設值) 無法滿足多條件的寫法,比如,我要a-b = 0 且a !=0 用decode沒法實現 2.case when 能寫多條件 寫法一:case 表示式 wh
thinkphp中查詢,where條件集合寫法
1、字串模式查詢(_string)查詢多個“與”條件中巢狀“與”條件陣列條件可以和字串條件(採用_string 作為查詢條件)混合使用,例如:$User = M("User");// 例項化User物件$map['id']= array('neq',1);$map['name
資料庫查詢語句,追加條件的寫法。
本篇完全為專案中摘抄下來的,僅為本人記錄之用。外人看到,僅做參考。 @Override public PagedResult<InspPointResultDto> getPointPaged(PointCretiria tQuery) {
mysql 以查詢結果作為查詢條件sql寫法
SELECT dor.DEVICE_UUID AS deviceUuid, dor.OUTAGE_START AS outageStart, dor.OUTAGE_END AS outageEnd, dor.outageTime AS outageTime FROM ( S
sql查詢條件為空的另類寫法o( ̄▽ ̄)d
getx 不為 發現 語句 level nbsp lena type bsp 簡單描述:今天看老大提交的代碼,發現了一個有意思的事情,一條sql中判斷條件是空,老大的寫法,讓我眼前一亮。直接上代碼 代碼: <select id="getxxxs" resultMap=
根據查詢條件搜尋商品sql語句的寫法
問題: 在使用者使用查詢功能的時候,從前端傳送給我們後端的資訊(如下圖4個資訊),有可能不是4個都填上的,所以導致我們Dao層的sql語句不能夠寫死,那麼我們該如何新增這個變化的變數進去sql語句呢? 解決程式碼: 首先,我們將從前端獲取的資料在web
條件語句的另一種寫法
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> extern int g_a; //可以呼叫其他檔案中的定義;此為申明 main() { int a,b; scanf("%d",
python 寫函式在一定條件下需要呼叫自身時的寫法
例如以下這個函式: state = 1 def set_state(state): while state: set = int(input('請輸入9或5,顯示"hello world"\n')) if set == 9 or set == 5:
以checked選中作為判斷條件的各種寫法
<input type="radio" name="choice" id="ipt1"> <label for="ipt1">彈出1</label> <input type="radio" name="choice" id="ip
jdbcTemplate.update()的幾種寫法 以及NamedParameterJdbcTemplate
api提供了update的幾種呼叫寫法 //方法一直接在sql中拼接好了引數之後呼叫即可 @Override public int update(final String sql) throws DataAccessException { Assert.notNull(s
oracle資料庫使用時間作為查詢條件時的寫法
select 目標列 from 表名 where 時間列=to_date('時間','yyyy-mm-dd hh24:mi:ss');比如select name from birth_info whe
thinkphp 條件陣列的寫法
參考文件 http://www.thinkphp.cn/topic/7951.html 表示式 含義EQ 等於(=)NEQ 不等於(<>)GT 大於(>)EGT 大於等於(>=)LT 小於(<)ELT 小於等於(<=)LIKE 模糊
SQL Server 儲存過程中處理多個查詢條件的幾種常見寫法分析,我們該用那種寫法
最近發現還有不少做開發的小夥伴,在寫儲存過程的時候,在參考已有的不同的寫法時,往往很迷茫, 不知道各種寫法孰優孰劣,該選用那種寫法,以及各種寫法優缺點,本文以一個簡單的查詢儲存過程為例,簡單說一下各種寫法的區別,以及該用那種寫法 專業DBA以及熟悉資料庫的同學請無視。
mybatis針對Oracle資料庫進行(單個或多個條件)批量操作(新增、修改、刪除)的sql寫法--mysql
1、批量新增: <insert id="addMonthDutyIntoDB" parameterType="java.util.List"> insert into TB_D
05、react之 條件判斷的四種寫法
條件判斷的四種寫法 1、三元表示式?: 2、使用變數,通過函式使用條件判斷語句,返回一個字串 3、直接在{}中呼叫函式 4、使用比較運算子&& || ! 說明: