0
点赞
收藏
分享

微信扫一扫

ibatis 多条件查询


1、在java代码中使用字符串拼接映射文件中这样写:


Xml代码


    1. <select id="getBrno" parameterClass="java.lang.String" resultMap="bctlResult">
    2.     select brno,brname from bctl where $sql$       
    3.  </select>


    然后再java文件中拼写出SQL的条件语句: 

     


    Java代码


    1. String sql= " brno like"+ b +"and pigday" = p;// b和p都是变量。


    再在方法中调用传递进去:

     


    Java代码


    1. brList = sqlMap.queryForList("CR.getBrno", sql);


    这是一种方法,很明显这种方法有一种弊端,就是sql语句需要写在java源文件中。如果需要更改查询条件,就不得不修改java文件,再重新编译。这与ibatis的本意有些违背。(这个容易被注入,不好吧^-^)

     

    2,直接在映射文件中配置参数
    映射文件这样写:

     


    Xml代码


    1. <!-- 多条件查询-->
    2.  <parameterMap   id="myParam"   class="java.util.HashMap">
    3.    <parameter   property="id"/>
    4.    <parameter   property="name"/>
    5.  </parameterMap>          
    6.  <select   id="multConQuery" parameterMap="myParam" resultClass="Department">
    7. id = ? and name
    8.  </select>

    java文件中这样调用:

     


    Java代码


    1. public Department queryDepartmentByIdAndName(int
    2. {      
    3. new
    4. try
    5.     {      
    6.         sqlMapClient.startTransaction();      
    7. new
    8. "id",id);       
    9. "name",name);       
    10. "multConQuery",hmParam,dept);       
    11.         sqlMapClient.commitTransaction();      
    12.     }      
    13. catch(Exception e)       
    14.     {      
    15.         e.printStackTrace();      
    16.     }      
    17. return
    18.  }



    举报

    相关推荐

    0 条评论