zoukankan      html  css  js  c++  java
  • ibatis 字段类型为int时如何避免默认值得干扰

    在xml文件中配置查询语句时,通常都是采用以下方法:

    <select id="getByExample" resultMap="PgWtResult" parameterClass="com.daos.newSix.entity.PgWt" >
       select id, seqNo, entrustNo, tradeType
       from pg_wt
       <dynamic prepend="where">
          <isNotNull prepend="and" property="seqno" >
            seqNo = #seqno:VARCHAR#
          </isNotNull>
          <isNotNull prepend="and" property="tradetype" >-->
               tradeType = #tradetype:INTEGER#    
          </isNotNull>
          <isNotNull prepend="and" property="tradetypeother" >
            tradeTypeOther = #tradetypeother:VARCHAR#
          </isNotNull>
    </dynamic>
    </select>

    此处关于int类型字段只采用了非空判断,很弱有木有~

    当你new PgWt() 时,tradetype=0~,但是在咱们做getByExample查询时,又不以tradetype做查询条件时,sql中却拼接了

    “ and tradetype=0”这查询条件~

    要想避免这种情况,可以按照以下写法进行修改

    1 <isPropertyAvailable property="tradetype">
    2     <isNotNull property="tradetype">
    3     <!--  isGreaterThan判断参数是否大于compareValue,isGreaterEquals是大于等于 -->
    4     <isGreaterEqual prepend=" and " property="id" compareValue="0">
    5         tradeType = #tradetype:INTEGER#
    6     </isGreaterEqual >
    7     </isNotNull>
    8 </isPropertyAvailable>        

    除此之外,还可以使用其他二元条件元素,介绍如下: 

    二元条件元素 

    二元条件元素将一个属性值和一个静态值或另一个属性值比较,如果条件为“真”,元素体的内容将被包括在查询SQL语句中。

    二元条件元素的属性: 

             prepend - 可被覆盖的SQL语句组成部分,添加在语句的前面(可选)property - 被比较的属性(必选)
             compareProperty - 另一个用于和前者比较的属性(必选或选择compareValue)
             compareValue - 用于比较的值(必选或选择compareProperty)

    二元条件元系的属性:

    <isEqual>

    比较属性值和静态值或另一个属性值是否相等。

    <isNotEqual>

    比较属性值和静态值或另一个属性值是否不相等。

    <isGreaterThan>

    比较属性值是否大于静态值或另一个属性值。

    <isGreaterEqual>

    比较属性值是否大于等于静态值或另一个属性值。

    <isLessThan>

    比较属性值是否小于静态值或另一个属性值。

    <isLessEqual>

    比较属性值是否小于等于静态值或另一个属性值。 例子: <isLessEqual prepend=”AND” property=”age” compareValue=”18”> ADOLESCENT = ‘TRUE’ </isLessEqual>

     

      

    推荐一个:ibatis动态生成标签

  • 相关阅读:
    Java实现web页面内容抓取
    Java写入文件的几种方法及性能对比
    Java实现导出excel
    win10系统安装VMware虚拟机软件以及linux系统
    oracle11g安装教程
    oracle怎么建立本地连接
    工厂模式
    计算一个字符串中每个字符出现的次数
    MySql多表查询
    如何查看MySql的sql语句性能
  • 原文地址:https://www.cnblogs.com/ylhssn/p/5556223.html
Copyright © 2011-2022 走看看