myabtis 用LinkedHashMap作为in参数 怎么使用
时间: 2023-02-08 14:43:29 浏览: 109
Mybatis 支持使用 LinkedHashMap 作为 IN 参数。具体用法如下:
1. 在 XML 映射文件中定义 SQL 语句,并使用 `#{key}` 来引用参数。例如:
```
<select id="selectUsers" resultType="User">
SELECT * FROM USERS WHERE ID IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
```
2. 在代码中,创建一个 LinkedHashMap 对象,并将其作为参数传递给 Mybatis。例如:
```
Map<String, Object> params = new LinkedHashMap<>();
params.put("ids", Arrays.asList(1, 2, 3));
List<User> users = sqlSession.selectList("selectUsers", params);
```
注意: 在结构中需要设置collection和item对应参数, 其中collection对应LinkedHashMap对象中设置的key, item对应取出来的值
另外,我建议使用@Param, 例如
```
List<User> selectUsers(@Param("ids") List<Integer> ids);
```
这样使用,会更加方便和简洁.
相关问题
LinkedHashMap使用
LinkedHashMap是一个继承自HashMap的类,它与HashMap的主要区别是,LinkedHashMap会维护一个双向链表,以保证元素的顺序。具体来说,当使用迭代器遍历LinkedHashMap时,它会按照元素插入的顺序输出元素。而HashMap则无法保证元素的顺序。
LinkedHashMap的使用方法与HashMap基本相同,只是在创建LinkedHashMap对象时需要使用LinkedHashMap的构造函数。
下面是一个使用LinkedHashMap的例子:
```
import java.util.LinkedHashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个LinkedHashMap对象
Map<String, String> map = new LinkedHashMap<>();
// 添加元素
map.put("apple", "red");
map.put("banana", "yellow");
map.put("orange", "orange");
// 遍历元素
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " -> " + entry.getValue());
}
}
}
```
输出结果:
```
apple -> red
banana -> yellow
orange -> orange
```
可以看到,元素的顺序与添加的顺序一致。如果使用HashMap,输出的顺序是不确定的。
linkedhashmap使用
LinkedHashMap是Java集合框架中的一个特殊 HashMap 实现,它同时具备了哈希表的高效查找和链表的插入顺序保留特性。在LinkedHashMap中,元素按插入顺序排序并维护了一个双向链接列表,这使得可以根据插入顺序访问元素,这对于需要保持数据添加顺序的应用场景非常有用。
特点如下:
1. **键值对的插入顺序**:新插入的元素会被自动添加到链表头部,如果删除元素则会在删除时调整链表,保证了插入顺序。
2. **按键访问**:如同普通的HashMap,可以快速通过键来查找对应的值。
3. **迭代顺序**:遍历LinkedHashMap时,默认会按照插入顺序进行。
4. **分段设计**:为了提高性能,LinkedHashMap通常采用桶数组(bucket array)分割,每个桶内部还是链表结构。
阅读全文