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.     select * from department where id = ? and name = ?           
  8. </select>   

java文件中这样调用:

 

Java代码 复制代码
  1. public Department queryDepartmentByIdAndName(int id,String name)      
  2. {      
  3.     Department dept = new Department();      
  4.     try     
  5.     {      
  6.         sqlMapClient.startTransaction();      
  7.         HashMap hmParam = new HashMap();      
  8.         hmParam.put("id",id);      
  9.         hmParam.put("name",name);      
  10.         sqlMapClient.queryForObject("multConQuery",hmParam,dept);      
  11.         sqlMapClient.commitTransaction();      
  12.     }      
  13.     catch(Exception e)      
  14.     {      
  15.         e.printStackTrace();      
  16.     }      
  17.     return dept;      
  18.  }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值