ibatis多个条件查询的解决办法总结

ibatis多个条件查询的解决办法总结
sql语句为:select * from t_user where name=#name# and sex=#sex#;
1.拼字符串,sql语句改为select * from t_user where $sql$(是$,而不是#);
String sql=" name='name' and sex='sex' ";也就是将多个参数拼成一个字符串,用这个
字符串作为参数。
2.用map作参数。将parameterClass的值改为java.util.Map,在程序中创建个map对象,
以sql语句中的变量为健,map.put("name", "liang");map.put("sex", "0");再将这个
map作为查询方法的参数。
3.用parameterMap。配置文件中加入:
<parameterMap class="java.util.Map" id="param">
<parameter property="name"/>
<parameter property="sex"/>
</parameterMap>
sql语句改为:select * from t_user where name=? and sex=?
配置文件中的select标签中添加parameterMap="param",去掉parameterClass。
然后在程序中建map,以parameterMap中的参数为健。
这里有个疑问,就是这种方法和第二种方法本质上有什么区别?
4.新建个pojo,笨方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iBatis 中,可以使用注解方式执行 SQL 查询并返回多个实体类。首先,需要在需要返回的实体类中使用 `@Alias` 注解指定别名,以便在 SQL 查询中引用。 接下来,在执行 SQL 查询的方法上使用 `@Select` 注解指定 SQL 语句,并通过 `resultMap` 属性指定返回结果的映射关系。在 `resultMap` 中,可以通过 `@Result` 注解指定每个属性的映射关系。 以下是一个示例代码: ```java public interface MyMapper { @Select("SELECT a.id AS id, a.name AS name, b.email AS email FROM table_a a JOIN table_b b ON a.id = b.a_id WHERE a.id = #{id}") @Results(id = "myResultMap", value = { @Result(property = "id", column = "id"), @Result(property = "name", column = "name"), @Result(property = "email", column = "email") }) List<MyEntity> getEntitiesById(@Param("id") int id); } public class MyEntity { @Alias("id") private int id; @Alias("name") private String name; @Alias("email") private String email; // Getters and setters } ``` 在这个例子中,`MyMapper` 接口定义了一个方法 `getEntitiesById`,使用 `@Select` 注解指定了 SQL 查询语句,并使用 `@Results` 注解通过 `@Result` 注解指定了结果映射关系。`MyEntity` 类中的属性使用 `@Alias` 注解指定了别名,以与 SQL 查询语句中的列名相匹配。 当需要执行该查询并返回多个实体类时,只需要调用 `getEntitiesById` 方法并传入相应的参数即可。返回的结果将会是一个包含多个 `MyEntity` 对象的列表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值