Oacle 설정 ibatis 동적 다 중 조건 조합 모호, 페이지 조회

링크 주소:
http://kevin12.iteye.com/blog/1953780
주의 할 곳: & lt;바로 < 호, 즉 작은 호, & lt;예 > 호, 즉 호 보다 크다.
최근 프로 세 스 항목 의 데이터 베 이 스 를 my sql 에서 Oacle 데이터베이스 로 바 꾸 었 습 니 다. 원래 설 정 된 my sql 의 ibatis 파일 은 사용 할 수 없습니다. 예 를 들 어 페이지 기능, 퍼 지 조회 도 사용 할 수 없습니다.다음은 제 가 수정 한 Oacle 설정 ibatis 의 페이지 와 동적 다 중 조건 조합, 모호 한 조 회 를 기록 합 니 다.페이지 별로 조회 하 는 ibatis 파일 만 열거 되 어 있 습 니 다. 코드 가 좀 복잡 하지만 세심 하고 인내심 이 있 으 면 얻 을 수 있 습 니 다.
 
  <select id="IUserInf_getListForPage" parameterClass="java.util.HashMap" resultMap="codeNodeMapping">
     select * from( select row_.*,rownum rownum_ from (select IUI_ID,IUI_USER_NAME,IUI_LOGIN_NAME,IUI_PASSWORD,IUI_MOBILE_PHONE,IUI_TEL,IUI_EMAIL,IUI_ID_NO,IUI_ORG_ID,IUI_IS_ADMIN,IUI_CREATE_DATETIME,IUI_LAST_UPDATE_DATETIME,IUI_LAST_UPDATE_OPERATOR_ID,IUI_VERSION,IUI_VERSION_DATE,IUI_DATA_STATUS,IUI_IS_ACTIVITY from TB_I_USER_INF a 
  <dynamic prepend="WHERE ">    
    <isNotEmpty prepend="AND" property="IUI_ID"> a.IUI_ID like '%$IUI_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_USER_NAME"> a.IUI_USER_NAME like '%$IUI_USER_NAME$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LOGIN_NAME"> a.IUI_LOGIN_NAME like '%$IUI_LOGIN_NAME$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_PASSWORD"> a.IUI_PASSWORD like '%$IUI_PASSWORD$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_MOBILE_PHONE"> a.IUI_MOBILE_PHONE like '%$IUI_MOBILE_PHONE$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_TEL"> a.IUI_TEL like '%$IUI_TEL$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_EMAIL"> a.IUI_EMAIL like '%$IUI_EMAIL$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_ID_NO"> a.IUI_ID_NO like '%$IUI_ID_NO$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_ORG_ID"> a.IUI_ORG_ID like '%$IUI_ORG_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_IS_ADMIN"> a.IUI_IS_ADMIN = #IUI_IS_ADMIN#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_CREATE_DATETIME"> a.IUI_CREATE_DATETIME = #IUI_CREATE_DATETIME#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LAST_UPDATE_DATETIME"> a.IUI_LAST_UPDATE_DATETIME = #IUI_LAST_UPDATE_DATETIME#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LAST_UPDATE_OPERATOR_ID"> a.IUI_LAST_UPDATE_OPERATOR_ID like '%$IUI_LAST_UPDATE_OPERATOR_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_VERSION"> a.IUI_VERSION = #IUI_VERSION#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_VERSION_DATE"> a.IUI_VERSION_DATE = #IUI_VERSION_DATE#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_DATA_STATUS"> a.IUI_DATA_STATUS = #IUI_DATA_STATUS#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_IS_ACTIVITY"> a.IUI_IS_ACTIVITY = #IUI_IS_ACTIVITY#</isNotEmpty>
  </dynamic>
	)row_ WHERE rownum &lt;= $endRow$)row_ WHERE rownum_ &gt;$startRow$
  <dynamic prepend="ORDER BY">
        <isNotEmpty property="orderSql">   
            $orderSql$   
        </isNotEmpty>
    </dynamic>   
   </select>
    <select id="IUserInf_getCount" parameterClass="java.util.HashMap" resultClass="java.lang.Long">
        select count(1) as value from TB_I_USER_INF a 
  <dynamic prepend="WHERE ">    
    <isNotEmpty prepend="AND" property="IUI_ID"> a.IUI_ID like '%$IUI_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_USER_NAME"> a.IUI_USER_NAME like '%$IUI_USER_NAME$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LOGIN_NAME"> a.IUI_LOGIN_NAME like '%$IUI_LOGIN_NAME$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_PASSWORD"> a.IUI_PASSWORD like '%$IUI_PASSWORD$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_MOBILE_PHONE"> a.IUI_MOBILE_PHONE like '%$IUI_MOBILE_PHONE$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_TEL"> a.IUI_TEL like '%$IUI_TEL$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_EMAIL"> a.IUI_EMAIL like '%$IUI_EMAIL$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_ID_NO"> a.IUI_ID_NO like '%$IUI_ID_NO$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_ORG_ID"> a.IUI_ORG_ID like '%$IUI_ORG_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_IS_ADMIN"> a.IUI_IS_ADMIN = #IUI_IS_ADMIN#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_CREATE_DATETIME"> a.IUI_CREATE_DATETIME = #IUI_CREATE_DATETIME#)</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LAST_UPDATE_DATETIME"> a.IUI_LAST_UPDATE_DATETIME = #IUI_LAST_UPDATE_DATETIME#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LAST_UPDATE_OPERATOR_ID"> a.IUI_LAST_UPDATE_OPERATOR_ID = #IUI_LAST_UPDATE_OPERATOR_ID#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_VERSION"> a.IUI_VERSION = #IUI_VERSION#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_VERSION_DATE"> a.IUI_VERSION_DATE = #IUI_VERSION_DATE#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_DATA_STATUS"> a.IUI_DATA_STATUS = #IUI_DATA_STATUS#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_IS_ACTIVITY"> a.IUI_IS_ACTIVITY = #IUI_IS_ACTIVITY#</isNotEmpty>
  </dynamic>

    </select>

다음은 서비스 에서 ibatis 파일 에 대한 호출 입 니 다.

	public <T> Pager<T> getListByPage(T obj, Integer pageSize,
			Integer currentPage) {
		String paths = obj.getClass().toString();
		String model = paths.substring(paths.lastIndexOf(".") + 1, paths.length());
		List<T> list = null;
		Pager page = new Pager();
		page.setPageSize(pageSize);
		page.setCpage(currentPage);
		Map map = MapPojoUtils.pojo2Map(obj);
		Long totalSize = (Long) getSqlMapClientTemplate().queryForObject(model + "_getCount", map);
		page.setTotalItem(totalSize);
//		map.put("startRow", page.getPageStart()+1);
//		map.put("endRow", page.getPageSize()+page.getPageStart());
		map.put("startRow", page.getPageStart());
		map.put("endRow", page.getPageSize());
		list = getSqlMapClientTemplate().queryForList(
				model + "_getListForPage", map);
		page.setList(list);
		return page;
	}

	public Pager<IUserInf> sysconfig_findUser(IUserInf user, Integer pageSize,
			Integer currentPage) {
		 Pager<IUserInf> pager=iUserInfDao.getListByPage(user, pageSize, currentPage);
		 List<IUserInf> list=pager.getList();
		 class Sort implements Comparator<IUserInf>{
			public int compare(IUserInf o1, IUserInf o2) {
				return o1.getIUI_USER_NAME().compareToIgnoreCase(o1.getIUI_USER_NAME());
			}
		 }
		 Collections.sort(list, new Sort());
		 pager.setList(list);
		return 	pager;
	}

링크 주소:
http://kevin12.iteye.com/blog/1953780

좋은 웹페이지 즐겨찾기