日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iBatis 相关

發布時間:2024/7/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iBatis 相关 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、配置iBatis 返回類型(例如,sum( ) 一個BigDeciaml列后 )

<select id="abatorgenerated_totalWt2" resultClass="java.math.BigDecimal" parameterClass="java.lang.String">select sum(shp_wt2) from T04_CASE_DTL_WK where slip_id = #slipId:VARCHAR# ;</select>

2、iBatis 模糊查詢問題分析

問題:通過 iBatis 提供的接口實現“前綴匹配”模糊查詢時,如果輸入的參數是( "_" 或 "%") 會查詢出所有的記錄。

分析:iBatis 提供的模糊查詢解析后的SQL語句如( like '_%' 或 like '%%')當然會查詢出所有的。

解決:轉義掉特殊字符(如下:)

select count(*) from m03_user_info where pc_usr_nm like '//%' escape '/' and company_id='01'

a、提供一個方法,將模糊查詢時的特殊字符轉義掉(包含轉義字符("/")本身)

/*** 轉換查詢條件中的通配符( "_", "%" )*/public static String escapeSqlWildcard( String s ){if( StringUtils.isBlank( s ) ){throw new IllegalStateException( "s is null, for SQL query." );}StringBuilder sb = new StringBuilder();for( int i=0 ; i<s.length() ; i++ ){char ch = s.charAt( i );switch( ch ){case '_':sb.append( "/_" );break;case '%':sb.append( "/%" );break;case '/':sb.append( "//" );break;default:sb.append( ch );}}return sb.toString();}b、在JavaBean 中返回參數時,完成轉義

package jp.co.snjp.db.model;import jp.co.snjp.kddi.web.util.Global;/*** 封裝分頁查詢M03UserInfo的參數* @author GongQiang**/ public class M03UserInfoPageList {private int page;private int pageSize;private String companyId;private String name;public M03UserInfoPageList(int page, int pageSize, String companyId, String name) {super();this.page = page;this.pageSize = pageSize;this.companyId = companyId;this.name = name;}public M03UserInfoPageList(int page, int pageSize, String companyId) {super();this.page = page;this.pageSize = pageSize;this.companyId = companyId;}public M03UserInfoPageList(String companyId, String name) {super();this.companyId = companyId;this.name = name;}public M03UserInfoPageList() {super();// TODO Auto-generated constructor stub}// 其他 get/set 方法省略public String getName() {if( name == null ){return null;}return Global.escapeSqlWildcard( name ) + "%";}} c、在 iBatis 的sqlMap 配置文件中配置
<!-- ***************************************通過companyId 和 name 查詢記錄條數*************************************** --><select id="abatorgenerated_countByCompanyIdAndName" resultClass="Integer" parameterClass="jp.co.snjp.db.model.M03UserInfoPageList" >select count(*) from m03_user_info where company_id = #companyId:VARCHER# <isNotNull property="name">and pc_usr_nm like #name# escape'/'</isNotNull></select>d、dao 層新增方法

/*** 查詢記錄條數,通過companyId 和name * @param params* @return* @throws SQLException** Date :2011-11-28* Author :GongQiang*/public Integer countByCompanyIdAndName( M03UserInfoPageList params ) throws SQLException{if( params == null ){throw new IllegalStateException( "params is null." );}return (Integer) sqlMapClient.queryForObject( "m03_user_info.abatorgenerated_countByCompanyIdAndName", params);}
這樣就 OK 了。。。。。。。


總結

以上是生活随笔為你收集整理的iBatis 相关的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。