tkmybatis如何写where、in语句
时间: 2024-01-10 18:02:45 浏览: 25
在使用tkmybatis进行where条件查询的时候,可以使用Example类来构造条件。其中,使用Criteria对象来添加条件,可以使用Criteria.andXXX、Criteria.orXXX等方法来添加and、or等关系。
举个例子:
```
Example example = new Example(User.class);
Criteria criteria = example.createCriteria();
criteria.andEqualTo("userName", "张三");
criteria.andIn("userAge", Arrays.asList(18, 20, 22));
List<User> users = userMapper.selectByExample(example);
```
这个例子中,我们使用Example类来构造查询条件,然后使用Criteria对象来添加条件。其中,`criteria.andEqualTo("userName", "张三")`指定了userName字段等于"张三",`criteria.andIn("userAge", Arrays.asList(18, 20, 22))`指定了userAge字段在18、20、22中的值。
最后,我们调用userMapper.selectByExample(example)方法来执行查询操作,返回符合条件的User对象列表。
相关问题
mybatis where条件 in 怎么写
MyBatis 中的 WHERE 条件 IN 可以通过在 Mapper 文件中使用动态 SQL 的方式来实现,具体写法如下:
```xml
<select id="selectByList" parameterType="java.util.List" resultMap="BaseResultMap">
SELECT *
FROM table
WHERE column IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
其中,`list` 是传入的参数,`item` 是 list 中的每一个元素,`open`、`separator` 和 `close` 是括号和逗号的开头和结尾,`#{item}` 表示将 list 中的每一个元素替换到该位置。
例如,如果要查询 id 在 1、2、3 中的数据,可以这样调用:
```java
List<Integer> ids = Arrays.asList(1, 2, 3);
List<SomeObject> result = sqlSession.selectList("selectByList", ids);
```
MyBatis 会将 `selectByList` 中的动态 SQL 解析成如下 SQL 语句:
```sql
SELECT *
FROM table
WHERE column IN (1, 2, 3)
```
写一段mybatis not in的语句
以下是一个 MyBatis 中使用 not in 的示例语句:
<select id="selectUsersByAgeNotIn" resultType="User">
SELECT * FROM users WHERE age NOT IN
<foreach item="item" collection="ageList" open="(" separator="," close=")">
#{item}
</foreach>
</select>
其中,ageList 是一个 List<Integer> 类型的参数,表示不包含的年龄列表。这个语句将返回年龄不在 ageList 中的所有用户。