21、SSM框架-Mybatis多参数查询与列表查询不同方式实现(3)
来源:互联网 发布:冒险岛交易市场数据 编辑:程序博客网 时间:2024/06/05 18:20
本文要实现Mybatis多参数查询与列表查询不同方式实现,以一个实例来说明。
本文示例工程下载
一、查询所有数据,返回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>
查询列表的语句在 Employeer.xml 中
- <!-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 -->
- <select id="findEmployeerByName" parameterType="string" resultMap="resultMap">
- select * from `t_employeer` where employeer_name like #{employeer_name}
- </select>
- /**
- * 注意要和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);
- <!-- 定义数据库字段与实体对象的映射关系 -->
- <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>
测试代码:
- /**
- * 多参数查询列表
- */
- 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>
EmployeerMapper.java中添加
- /**
- * 多参数查询,注意要和Employeer.xml的方法名对应
- */
- public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);
- <!--多参数 查找 返回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是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个。
测试使用:
- /**
- * 多参数查询列表,使用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);
- }
一定要注意key:
结果:
本文示例工程下载
0 0
- 21、SSM框架-Mybatis多参数查询与列表查询不同方式实现(3)
- SSM搭建-Mybatis多参数查询与列表查询不同方式实现(18)
- Mybatis多参数查询与列表查询不同方式实现
- 【Mybatis】多参数查询与列表查询不同方式实现
- Mybatis多参数查询与列表查询不同方式实现
- Mybatis多参数查询与列表查询不同方式实现
- SSM框架-Mybatis基于注解实现增删查改和多参数列表查询
- 23、SSM框架-Mybatis基于注解实现增删查改和多参数列表查询(5)
- SSM搭建-Mybatis基于注解实现增删查改和多参数列表查询(20)
- 22、SSM框架-Mybatis关联查询一对一和一对多的实现(4)
- 【SSM-MyBatis框架】关联查询--多对多查询
- 【SSM-MyBatis框架】关联查询--一对多查询
- SSM框架 Mybatis联合查询 多表查询 分页
- 【SSM-MyBatis框架】关联查询--一对一查询
- SSM框架 用ajax实现模糊查询分页和列表
- SSM框架下实现MyBatis连接查询,一对多和多对一
- ssm框架学习---mybatis中一对多关系的查询
- SSM-MyBatis框架关联查询实例二
- Unity3D Shader之光照模型——理论与实践:用两种方式来实现漫反射Diffuse Reflection
- 何恺明经典去雾算法
- settings.db 在androd 6.0上的变化
- Android系统启动——Zygote进程
- ROS(indigo) 语音工具 科大讯飞 百度 pocketsphinx julius rospeex 16.11.22更新 ROS中文语音
- 21、SSM框架-Mybatis多参数查询与列表查询不同方式实现(3)
- myeclipse 修改jsp模板
- jquery实现表格字段统计功能
- hibernate中对象的三种状态
- ListView列表项数字/字母/汉字混合排序
- 51nod-1020 逆序排列
- ZooKeeper典型应用场景一览
- Hibernate异常:query specified join fetching, but the owner of the fetched association was not present
- RESTful模式来开发程序