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

这种方式用得比较多,可以用于封装框架

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);
         }

转载于:https://my.oschina.net/u/2615530/blog/870146

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值