林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
一、查询所有数据,返回List
查询出列表,也就是返回list, 在我们这个例子中也就是 List<Employeer> , 这种方式返回数据,需要在Employeer.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个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>id、result是最简单的映射,id为主键映射;result其他基本数据库表字段到实体类属性的映射。
查询列表的语句在 Employeer.xml 中
<!-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 --> <select id="findEmployeerByName" parameterType="string" resultMap="resultMap"> select * from `t_employeer` where employeer_name like #{employeer_name} </select>在EmployeerMapper 接口中增加方法:public List<Employeer> findEmployeerByName(String employeer_name);
/** * 注意要和Employeer.xml的方法名对应 */ public List<Employeer> findEmployeerByName(String employeer_name);
/** * 查询列表 */ public static List<Employeer> getEmployeerList(String employeer_name){ SqlSession session = null; List<Employeer> employeers=null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); employeers = employeerMapper.findEmployeerByName(employeer_name); session.commit() ; } finally { session.close(); } return employeers; } public static void main(String[] args) { List<Employeer> employeers=getEmployeerList("张三"); for(Employeer employeer:employeers){ System.out.println(employeer); } }
结果:
其中的数据的之前插入的,现在要查找张三的列表全部都列出来了。
二、多参数查询
(1)方法一
EmployeerMapper中定义
/** * 多参数查询,注意要和Employeer.xml的方法名对应 */ public List<Employeer> findEmployeerByNameandDep(String employeer_name,String employeer_department);Employeer.xml中定义
<!-- 定义数据库字段与实体对象的映射关系 --> <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 的值是指向前面定义好的 --> <select id="findEmployeerByNameandDep" resultMap="resultMap"> select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1} </select>由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始
测试代码:
/** * 多参数查询列表 */ public static List<Employeer> getEmployeerList(String employeer_name,String employeer_department){ SqlSession session = null; List<Employeer> employeers=null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); employeers = employeerMapper.findEmployeerByNameandDep(employeer_name, employeer_department); session.commit() ; } finally { session.close(); } return employeers; }
public static void main(String[] args) { System.out.println("=========================使用多单参数查询==========================="); List<Employeer> employeers1=getEmployeerList("张三","产品二部"); for(Employeer employeer1:employeers1){ System.out.println(employeer1); }
方法二:
将 resultMap="resultMap" 改成 resultType="Employeer"
<!--多参数 查找 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 --> <select id="findEmployeerByNameandDep" resultType="Employeer"> select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1} </select>方法三:Map封装多参数
/** * 多参数查询,注意要和Employeer.xml的方法名对应 */ public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);Employeer.xml中添加:
<!--多参数 查找 返回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>
测试使用:
/** * 多参数查询列表,使用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); }
结果:
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
原文地址:http://blog.csdn.net/evankaka/article/details/45671473