21、SSM框架 |
您所在的位置:网站首页 › 参数查询条件怎么写 › 21、SSM框架 |
本文要实现Mybatis多参数查询与列表查询不同方式实现,以一个实例来说明。 本文示例工程下载 一、查询所有数据,返回List 查询出列表,也就是返回list, 在我们这个例子中也就是 List , 这种方式返回数据,需要在Employeer.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 [html] view plain copy print ? id、result是最简单的映射,id为主键映射;result其他基本数据库表字段到实体类属性的映射。查询列表的语句在 Employeer.xml 中 [html] view plain copy print ? select * from `t_employeer` where employeer_name like #{employeer_name} select * from `t_employeer` where employeer_name like #{employeer_name} 在EmployeerMapper 接口中增加方法:public List findEmployeerByName(String employeer_name); [java] view plain copy print ? /** * 注意要和Employeer.xml的方法名对应 */ public List findEmployeerByName(String employeer_name); /** * 注意要和Employeer.xml的方法名对应 */ public List findEmployeerByName(String employeer_name); 测试: [java] view plain copy print ? /** * 查询列表 */ public static List getEmployeerList(String employeer_name){ SqlSession session = null; List 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 employeers=getEmployeerList("张三"); for(Employeer employeer:employeers){ System.out.println(employeer); } } /** * 查询列表 */ public static List getEmployeerList(String employeer_name){ SqlSession session = null; List 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 employeers=getEmployeerList("张三"); for(Employeer employeer:employeers){ System.out.println(employeer); } }结果:
其中的数据的之前插入的,现在要查找张三的列表全部都列出来了。 二、多参数查询 (1)方法一 EmployeerMapper中定义 [java] view plain copy print ? /** * 多参数查询,注意要和Employeer.xml的方法名对应 */ public List findEmployeerByNameandDep(String employeer_name,String employeer_department); /** * 多参数查询,注意要和Employeer.xml的方法名对应 */ public List findEmployeerByNameandDep(String employeer_name,String employeer_department);Employeer.xml中定义 [html] view plain copy print ? [java] view plain copy print ? select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1} select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1} 由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始测试代码: [java] view plain copy print ? /** * 多参数查询列表 */ public static List getEmployeerList(String employeer_name,String employeer_department){ SqlSession session = null; List 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 List getEmployeerList(String employeer_name,String employeer_department){ SqlSession session = null; List 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; } [java] view plain copy print ? public static void main(String[] args) { System.out.println("=========================使用多单参数查询==========================="); List employeers1=getEmployeerList("张三","产品二部"); for(Employeer employeer1:employeers1){ System.out.println(employeer1); } public static void main(String[] args) { System.out.println("=========================使用多单参数查询==========================="); List employeers1=getEmployeerList("张三","产品二部"); for(Employeer employeer1:employeers1){ System.out.println(employeer1); } 结果:
方法二: 将 resultMap="resultMap" 改成 resultType="Employeer" [java] view plain copy print ? select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1} select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1} 方法三:Map封装多参数 EmployeerMapper.java中添加 [java] view plain copy print ? /** * 多参数查询,注意要和Employeer.xml的方法名对应 */ public List findEmployeerByNameandDep1(Map map); /** * 多参数查询,注意要和Employeer.xml的方法名对应 */ public List findEmployeerByNameandDep1(Map map);Employeer.xml中添加: [html] view plain copy print ? select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2} select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2} 其中map是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个。测试使用: [java] view plain copy print ? /** * 多参数查询列表,使用map */ public static List getEmployeerList(Map map){ SqlSession session = null; List employeers=null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); employeers = employeerMapper.findEmployeerByNameandDep1(map); session.commit() ; } finally { session.close(); } return employeers; } /** * 多参数查询列表,使用map */ public static List getEmployeerList(Map map){ SqlSession session = null; List employeers=null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); employeers = employeerMapper.findEmployeerByNameandDep1(map); session.commit() ; } finally { session.close(); } return employeers; } [java] view plain copy print ? System.out.println("=========================使用多单参数map方式查询==========================="); Map map = new HashMap(); map.put("key1", "明明"); map.put("key2", "财会部"); List employeers2=getEmployeerList(map); for(Employeer employeer2:employeers2){ System.out.println(employeer2); } System.out.println("=========================使用多单参数map方式查询==========================="); Map map = new HashMap(); map.put("key1", "明明"); map.put("key2", "财会部"); List employeers2=getEmployeerList(map); for(Employeer employeer2:employeers2){ System.out.println(employeer2); } 一定要注意key:结果:
本文示例工程下载 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |