mybatis學習六 多參數查詢(二)Map封裝多參數

這種方式用得比較多,能夠用於封裝框架java

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開始sql

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);
         }
相關文章
相關標籤/搜索