`

mybatis~中分页,带条件查询

阅读更多
<select id="selectAllAndByproduct_line" parameterType="hashmap" resultMap="ExtendResultMap" >
  	SELECT  t.id tid,t.name tname,p.*  
  		FROM project_template t INNER JOIN project_project p ON p.template_id = t.id 
where p.state=1 
<if test="lineId!=null and lineId!=''"> and p.product_line in
   <foreach item="item" index="index" collection="lineId" open="(" separator="," close=")"> 
       #{item}
   </foreach> 
</if> 
<if test="lineIdChild!=null and lineIdChild!=''">
   and p.child_product_line in 
  <foreach item="item" index="index" collection="lineIdChild" open="(" separator="," close=")">
     #{item} 
  </foreach> 
</if> 
<if test="name!=null and name!=''"> 
   and p.name LIKE '%'+#{name}+'%'
 </if> order by p.id </select>




 

		 Map<String, Object> paramMap =new HashMap<String, Object>();
		List<Integer> lineIdList=new ArrayList<Integer>();//定义产品线id集合
		List<Integer> lineIdChildList=new ArrayList<Integer>();//定义子线id集合
		
		//获取产品线指定的id-点击对应的产品线获取的id
		String pageNum=request.getParameter("pageNum");//当前页
		String pageSize=request.getParameter("pageSize");//页数量
		String lineIdName =request.getParameter("lineId");//获取产品线id字符串
		String lineIdChildName =request.getParameter("lineIdChild");//获取子线id,并拆分为数组
		String reachName=new String(((request.getParameter("reachName")==null||"".equals(request.getParameter("reachName")))?"":request.getParameter("reachName")).getBytes("iso-8859-1"),"utf-8");
		System.out.println("当前页"+pageNum+" 页数量"+pageSize+" 产品线id为:"+lineIdName+" 子线id为:"+lineIdChildName+" 搜索的名称为:"+reachName);
		
		//产品线id
		if(lineIdName!=null && !"".equals(lineIdName))
		{
			String lineId [] =lineIdName.split(",");//将产品线id字符串拆分为数组
			for (int i = 0; i < lineId.length; i++) 
			{
				System.out.println("异步显示产品线的id为:"+lineId[i]);
				lineIdList.add(Integer.parseInt(lineId[i]));//将产品线id放到产品线集合中
			}
			paramMap.put("lineId",lineIdList);//传递的是产品线id集合
		}
		else 
		{
			paramMap.put("lineId",null);//传递的是产品线id为空
		}
		//子线id
		if(lineIdChildName!=null&&!"".equals(lineIdChildName))
		{
			String lineIdChild []=lineIdChildName.split(",");//将子线id字符串拆分为数组
			for (int i = 0; i < lineIdChild.length; i++) 
			{
				lineIdChildList.add(Integer.parseInt(lineIdChild[i]));////将子线id房到集合中
			}
			paramMap.put("lineIdChild",lineIdChildList);//传递的是子线id集合
		}
		else 
		{
			paramMap.put("lineIdChild",null);//传递的是子线id为空
		}
		//分页中
		if(pageSize!=null&&!pageSize.equals(""))
		{
			if(pageNum!=null&&!pageNum.equals(""))
			{
				Integer exterNum = (Integer.parseInt(pageNum)-1)*Integer.parseInt(pageSize);
				paramMap.put("exterNum", exterNum);
			}else{
				paramMap.put("exterNum", 0);
			}
		}
		else
		{
			pageSize="5";//默认页面数量为5个
			if(pageNum!=null&&!pageNum.equals(""))
			{
				Integer exterNum = (Integer.parseInt(pageNum)-1)*Integer.parseInt(pageSize);
				paramMap.put("exterNum", exterNum);
			}else{
				paramMap.put("exterNum", 0);
			}
		}
		paramMap.put("pageSize", pageSize);
		paramMap.put("name", reachName);
		//获取全部的查询信息集合
		List<ProjectProjectExpandTwo> ProjectProjectExpandTwoList= projectService.selectAllAndByproduct_line(paramMap);
		Integer countnum=ProjectProjectExpandTwoList.size();//将总数传递到页面
		request.setAttribute("countnum", countnum);//将查询的总页数放到界面上
		//获取分页后的全部的查询信息集合
		List<ProjectProjectExpandTwo> ProjectProjectExpandTwoListFY= projectService.selectAllAndByproduct_lineFY(paramMap);

 

分享到:
评论
1 楼 stupider 2016-09-09  

相关推荐

    MyBatis拦截器 添加查询条件动态修改sql

    通过mybatis的拦截器,实现为所有sql(或指定sql) 统一添加查询条件,譬如通过线程变量传递某参数(日期),来实现对指定参数的数据筛选,而不需要在每个查询前,手动将该条件注入到查询中。因该资料网络较少,故特此...

    ( SpringMVC+Spring+Mybatis~lib

    在IT行业中,SpringMVC、Spring和Mybatis是三大核心框架,它们的组合通常被称为"SSM"(Spring MVC + Spring + Mybatis)架构。这个压缩包文件的标题表明它包含的是SSM框架所需的全部库文件,对于开发基于Java的Web...

    mybatis-plus QueryWrapper条件查询器

    首先,QueryWrapper是MyBatis-Plus提供的一种条件构造器,它通过链式编程的方式来创建SQL查询条件。例如,我们可以根据实体类的属性来设置各种条件,如等值、不等值、范围查询、模糊查询等。以下是一个简单的示例: ...

    MyBatis动态条件通用查询

    MyBatis动态条件通用查询是数据库操作中常见的一种需求,它允许开发者在不编写大量重复SQL语句的情况下,根据传入的参数灵活地执行查询。这个功能的核心在于利用MyBatis的动态SQL特性,结合Map数据结构来构建可变的...

    Mybatis基于注解实现多表查询功能

    Mybatis基于注解实现多表查询功能 Mybatis基于注解实现多表查询功能是指使用Mybatis框架中的注解来实现多表查询的功能。这种方法可以简化配置,提高开发效率。下面我们将详细介绍如何使用Mybatis基于注解实现多表...

    封装通用的Spring3+Struts2+MyBatis3的CRUD+条件分页查询

    例如,用户可以通过前端界面输入特定条件(如时间范围、温度范围等)进行查询,Struts2会接收到这些条件参数,然后调用Spring管理的Service,Service再通过MyBatis3的Mapper接口执行带有条件的分页SQL查询,最终返回...

    Mybatis框架(条件查询)

    Mybatis框架(条件查询)

    mybatis一对多的查询方法

    mybatis一对多的查询方法详解! mybatis一对多的查询方法详解! mybatis一对多的查询方法详解! mybatis一对多的查询方法详解!

    mybatis分页插件支持查询

    mybatis分页插件支持查询~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    MybatisGenerator代码生成器(可查询指定字段)

    MybatisGenerator本身是没有提供查询指定字段的,例如数据库有5个字段,我想查询其中3个字段的全部记录,这是做不到的。经过研究MybatisGenerator实现原理,在保证原有功能的基础上,实现了生成查询指定字段的相关...

    Mybatis框架(子查询)

    Mybatis框架(子查询)

    mybatis递归查询菜单树

    在本示例中,"mybatis递归查询菜单树"是一个基于SpringBoot架构的应用,它演示了如何利用MyBatis进行递归查询来构建菜单树结构。此外,这个项目还集成了JTA(Java Transaction API)以支持分布式事务处理,并使用了...

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char类型字段进行特殊处理,以确保查询结果的正确性。 首先,需要了解...

    MyBatis之自查询使用递归实现 N级联动效果(两种实现方式)

    "MyBatis之自查询使用递归实现 N级联动效果" MyBatis是一个功能强大且灵活的持久层框架,它支持自查询和递归查询,下面我们将探讨如何使用MyBatis实现 N级联动效果。 递归查询 递归查询是指在一个查询中调用自身...

    mybatis collection 多条件查询的实现方法

    在MyBatis中,多条件查询是常见的需求,特别是在处理复杂业务逻辑时。`collection`标签的使用使得我们可以实现主查询与子查询的嵌套,从而在一个查询操作中获取到多个关联的数据集合。以下是对`mybatis collection ...

    mybatis-gui0.96多选and查询.zip

    总结而言,MyBatis-GUI 0.96版是一个功能强大的数据库管理和代码生成工具,它简化了SQL编写和MyBatis的配置过程,特别是在处理多条件查询、排序、分页等方面表现出色。对于Windows环境下的Java开发团队,它能显著...

    MyBatis动态SQL:构建灵活查询的利器.md

    内容概要:本文介绍了...内容关键词:MyBatis、动态SQL、条件查询、SQL标签、灵活构建。 用途:通过本文的学习,读者将能够掌握MyBatis动态SQL的使用方法,提高数据库查询的效率和灵活性,优化代码质量和可维护性。

    完美解决MybatisPlus插件分页查询不起作用总是查询全部数据问题

    正常情况下,这将触发两条SQL语句的执行:第一条是计算总记录数,第二条是带有`LIMIT`限制的查询当前页数据的SQL。如果没有配置PaginationInterceptor,`selectPage`只会执行一条无分页的查询,这正是导致问题的原因...

    spring多数据源的处理_mybatis实现跨库查询

    "Spring 多数据源处理_Mybatis 实现跨库查询" 本文主要讨论了 Spring 框架中多数据源的处理方法,特别是使用 Mybatis 实现跨库查询。在大型应用中,为了提高系统的水平伸缩性,需要对数据进行切分,并且采用多个...

    Jsp+Servlet+MyBatis完成分页查询

    在分页查询场景下,MyBatis会被用来执行带有分页条件的SQL查询。 以下是实现分页查询的步骤: 1. **创建JSP页面**:在JSP页面上,创建一个表单来接收用户的分页参数,如当前页和每页记录数。此外,还需展示从...

Global site tag (gtag.js) - Google Analytics