這種方式用得比較多,能夠用於封裝框架java
/** * 多參數查詢,注意要和Employeer.xml的方法名對應 */ public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);
<!-- 定義數據庫字段與實體對象的映射關係 --> <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>
<!--多參數 查找 返回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
/** * 多參數查詢列表,使用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; }
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); }