您的位置:首页 > 大数据 > 人工智能

mybatis学习六 多参数查询(二)Map封装多参数

2017-03-29 00:00 316 查看
这种方式用得比较多,可以用于封装框架

1. 编写接口多参数方法

/**
* 多参数查询,注意要和Employeer.xml的方法名对应
*/
public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);

2. 编写resultMap

<!-- 定义数据库字段与实体对象的映射关系 -->
<resultMap type="Employeer" id="resultMap">
<id property="employeer_id" column="employeer_id"/>
<result property="employeer_name" column="employeer_name"/>
<result property="employeer_age" column="employeer_age"/>
<result property="employeer_department" column="employeer_department"/>
<result property="employeer_worktype" column="employeer_worktype"/>
</resultMap>

3. 编写sql语句

<!--多参数 查找 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的,注意key1和key2为传入的map的键值 -->
<select id="findEmployeerByNameandDep1" parameterType="map" resultType="Employeer">
select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}
</select>

由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始

4. 编写查询方法

/**
* 多参数查询列表,使用map
*/
public static List<Employeer> getEmployeerList(Map<String, String> map){
SqlSession session = null;
List<Employeer> employeers=null;
try {
session = sqlSessionFactory.openSession();
EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
employeers = employeerMapper.findEmployeerByNameandDep1(map);
session.commit() ;
} finally {
session.close();
}
return employeers;

}

5. 编写测试类

System.out.println("=========================使用多单参数map方式查询===========================");
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "明明");
map.put("key2", "财会部");
List<Employeer> employeers2=getEmployeerList(map);
for(Employeer employeer2:employeers2){
System.out.println(employeer2);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybtais map封装参数