21、SSM框架

您所在的位置:网站首页 参数查询条件怎么写 21、SSM框架

21、SSM框架

2024-07-09 08:40| 来源: 网络整理| 查看: 265

本文要实现Mybatis多参数查询与列表查询不同方式实现,以一个实例来说明。

本文示例工程下载

一、查询所有数据,返回List

查询出列表,也就是返回list, 在我们这个例子中也就是 List , 这种方式返回数据,需要在Employeer.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片                                  id、result是最简单的映射,id为主键映射;result其他基本数据库表字段到实体类属性的映射。

查询列表的语句在 Employeer.xml 中

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片                 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 ? 在CODE上查看代码片 派生到我的代码片 /**  * 注意要和Employeer.xml的方法名对应  */  public List findEmployeerByName(String employeer_name);      /** * 注意要和Employeer.xml的方法名对应 */ public List findEmployeerByName(String employeer_name); 测试:

[java] view plain copy print ? 在CODE上查看代码片 派生到我的代码片 /**  * 查询列表  */  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 ? 在CODE上查看代码片 派生到我的代码片 /**  * 多参数查询,注意要和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 ? 在CODE上查看代码片 派生到我的代码片                                  [java] view plain copy print ? 在CODE上查看代码片 派生到我的代码片               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 ? 在CODE上查看代码片 派生到我的代码片 /**  * 多参数查询列表  */  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 ? 在CODE上查看代码片 派生到我的代码片 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 ? 在CODE上查看代码片 派生到我的代码片               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 ? 在CODE上查看代码片 派生到我的代码片 /**  * 多参数查询,注意要和Employeer.xml的方法名对应  */  public List findEmployeerByNameandDep1(Map map);   /** * 多参数查询,注意要和Employeer.xml的方法名对应 */ public List findEmployeerByNameandDep1(Map map);Employeer.xml中添加:

[html] view plain copy print ? 在CODE上查看代码片 派生到我的代码片     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 ? 在CODE上查看代码片 派生到我的代码片 /**  * 多参数查询列表,使用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 ? 在CODE上查看代码片 派生到我的代码片 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