Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
package cn.bdqn.mhouse.dao.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.print.attribute.standard.PagesPerMinute;
import org.apache.ibatis.session.SqlSession;
import cn.bdqn.mhouse.dao.IHouseDao;
import cn.bdqn.mhouse.entity.House;
import cn.bdqn.mhouse.entity.HouseCondition;
import cn.bdqn.mhouse.entity.Street;
import cn.bdqn.mhouse.entity.Types;
import cn.bdqn.mhouse.util.MybatisUtil;
import cn.bdqn.mhouse.util.Page;
/**
 * 
*    
* 项目名称:mhouse   
* 类名称:HouseDaoMybatisImpl   
* 类描述:   房屋信息的操作类
* 创建人:Mu Xiongxiong  
* 创建时间:2017-3-15 下午4:04:07   
* 修改人:Mu Xiongxiong   
* 修改时间:2017-3-15 下午4:04:07   
* 修改备注:   
* @version    
*
 */
public class HouseDaoMybatisImpl implements IHouseDao {
  House house=new House();
  /**
   * (非 Javadoc)
  * <p>Title: deleteByPrimaryKey</p>
  * <p>Description(描述):根据id删除房屋信息 </p>
  * @param id
  * @return
  * @see cn.bdqn.mhouse.dao.IHouseDao#deleteByPrimaryKey(java.lang.Integer)
   */
  @Override
  public int deleteByPrimaryKey(Integer id) {
    SqlSession session=MybatisUtil.getSession();
    int rel=0;
    try {
      rel = session.delete("houseDao.deleteByPrimaryKey",id);
      session.commit();
    } catch (Exception e) {
      // TODO 异常执行块!
      e.printStackTrace();
      session.rollback();
    }finally{
      MybatisUtil.closeSession();
    }
    return rel;
  }
  /**
   * (非 Javadoc)
  * <p>Title: insert</p>
  * <p>Description(描述): 添加房屋信息</p>
  * @param record
  * @return
  * @see cn.bdqn.mhouse.dao.IHouseDao#insert(cn.bdqn.mhouse.entity.House)
   */
  @Override
  public int insert(House record) {
    SqlSession session=MybatisUtil.getSession();
    int rel=0;
    try {
      rel = session.insert("houseDao.insert",record);
      session.commit();
    } catch (Exception e) {
      // TODO 异常执行块!
      e.printStackTrace();
    }finally{
      MybatisUtil.closeSession();
    }
    return rel;
  }
  /**
   * (非 Javadoc)
  * <p>Title: selectByPrimaryKey</p>
  * <p>Description(描述):根据id查询房屋信息 </p>
  * @param id
  * @return
  * @see cn.bdqn.mhouse.dao.IHouseDao#selectByPrimaryKey(java.lang.Integer)
   */
  @Override
  public House selectByPrimaryKey(Integer id) {
    SqlSession session=MybatisUtil.getSession();
    House house=null;
    try {
      house=session.selectOne("houseDao.selectByPrimaryKey",id);
      
    } catch (Exception e) {
      // TODO 异常执行块!
      e.printStackTrace();
    }finally{
      MybatisUtil.closeSession();
    }
    return house;
  }
  /**
   * (非 Javadoc)
  * <p>Title: updateByPrimaryKey</p>
  * <p>Description(描述): 根据id修改房屋信息</p>
  * @param record
  * @return
  * @see cn.bdqn.mhouse.dao.IHouseDao#updateByPrimaryKey(cn.bdqn.mhouse.entity.House)
   */
  @Override
  public int updateByPrimaryKey(House record) {
    SqlSession session=MybatisUtil.getSession();
    int rel=0;
    try {
      rel=session.update("houseDao.updateByPrimaryKey",record);
      session.commit();
    } catch (Exception e) {
      // TODO 异常执行块!
      e.printStackTrace();
      session.rollback();
    }finally{
      MybatisUtil.closeSession();
    }
    return rel;
  }
  /**
   * (非 Javadoc)
  * <p>Title: reCount</p>
  * <p>Description(描述):动态查询总计录数</p>
  * @param housec
  * @return
  * @see cn.bdqn.mhouse.dao.IHouseDao#reCount(cn.bdqn.mhouse.entity.HouseCondition)
   */
  @Override
  public int reCount(HouseCondition housec) {
    SqlSession session=MybatisUtil.getSession();
    Integer count=(Integer)session.selectOne("houseDao.reCount",housec);
    return count;
  }
  
  
  
  /**
   * (非 Javadoc)
  * <p>Title: getHouseInfoByDymanic</p>
  * <p>Description:‘动态分页查询房屋信息</p>
  * @param housec
  * @param pageIndex
  * @return
  * @see cn.bdqn.mhouse.dao.IHouseDao#getHouseInfoByDymanic(cn.bdqn.mhouse.entity.HouseCondition, int)
   */
  @Override
  public Page getHouseInfoByDymanic(HouseCondition housec,int pageIndex) {
    Page page=new Page();
    page.setPageIndex(pageIndex);      //当前页
    int reCount=reCount(housec);       
    page.setRecord(reCount);           //总记录数
    List<House> houseList=new ArrayList<House>();
    HashMap parMap=new HashMap();
    parMap.put("priceBegin",housec.getPriceBegin());
    parMap.put("priceEnd",housec.getPriceEnd());
    if(housec.getStreet()!=null){
    parMap.put("street",housec.getStreet());
    }
    if(housec.getTypes()!=null){
      parMap.put("types",housec.getTypes());
    }
    parMap.put("floorageBegin", housec.getFloorageBegin());
    parMap.put("floorageEnd",housec.getFloorageEnd());
    parMap.put("stratRow",page.getSartRow());
    parMap.put("endRow",page.getEndRow());
    SqlSession session=MybatisUtil.getSession();
    try {
      houseList=session.selectList("houseDao.getHouseInfoByDymanic",parMap);
      page.setHouseList(houseList);
    } catch (Exception e) {
      e.printStackTrace();
    }finally{
      MybatisUtil.closeSession();
    }
    return page;
  }
  /**
   * (非 Javadoc)
  * <p>Title: getHouseInfo</p>
  * <p>Description:查询所有房屋信息 </p>
  * @return
  * @see cn.bdqn.mhouse.dao.IHouseDao#getHouseInfo()
   */
  @Override
  public Page getHouseInfo() {
    SqlSession session=MybatisUtil.getSession();
    List<House> housel=session.selectList("houseDao.getHouseInfo");
    Page page=new Page();
    page.setHouseList(housel);
    return page;
  }
  /**
   * (非 Javadoc)
  * <p>Title: getHousePage</p>
  * <p>Description(描述): 分页</p>
  * @param pageIndex
  * @param startRow
  * @param endRow
  * @return
  * @see cn.bdqn.mhouse.dao.IHouseDao#getHousePage(int, int, int)
   */
  @Override
  public Page getHousePage(int pageIndex) {
    SqlSession session=MybatisUtil.getSession();
    HashMap parMap=new HashMap();
    Page page=new Page();
    HouseCondition housec=new HouseCondition();
    page.setPageIndex(pageIndex);                   //当前页
    parMap.put("startRow",page.getSartRow());      //开始记录
    parMap.put("endRow",page.getEndRow());        //结束记录
    page.setRecord(reCount(housec));             //总记录数
    List<House> housel=session.selectList("houseDao.getHousePage",parMap);
    page.setHouseList(housel);                 //详细信息
    return page;
  }
}


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
SQL 存储 关系型数据库
MySQL怎样优化千万级数据
MySQL在处理千万级数据时可能存在性能挑战。本文介绍了几个优化策略来改善查询效率
|
2天前
|
自然语言处理 监控 关系型数据库
mysql造数据占用临时表空间
【5月更文挑战第20天】MySQL在处理复杂查询时可能使用临时表,可能导致性能下降。临时表用于排序、分组和连接操作。常见问题包括内存限制、未优化的查询、数据类型不当和临时表清理。避免过度占用的策略包括优化查询、调整系统参数、优化数据类型和事务管理。使用并行查询、分区表和监控工具也能帮助管理临时表空间。通过智能问答工具如通义灵码,可实时续写SQL和获取优化建议。注意监控`Created_tmp_tables`和`Created_tmp_disk_tables`以了解临时表使用状况。
119 5
|
4天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之用CTAS从mysql同步数据到hologres,改了字段长度,报错提示需要全部重新同步如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
46 8
|
4天前
|
SQL 资源调度 关系型数据库
实时计算 Flink版产品使用合集之在抓取 MySQL binlog 数据时,datetime 字段会被自动转换为时间戳形式如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
14 2
|
7天前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
96 1
|
7天前
|
druid Java 数据库连接
Spring Boot3整合MyBatis Plus
Spring Boot3整合MyBatis Plus
53 1
|
5天前
|
算法 Java 数据库连接
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
|
7天前
|
SQL Java 数据库连接
15:MyBatis对象关系与映射结构-Java Spring
15:MyBatis对象关系与映射结构-Java Spring
31 4
|
7天前
|
XML Java 数据库连接
Spring Boot与MyBatis:整合与实战
【4月更文挑战第29天】在现代的Java Web应用开发中,持久化层框架扮演了至关重要的角色。MyBatis作为一款优秀的持久化框架,被广泛应用于Java开发中。Spring Boot提供了简化开发流程的功能,而与MyBatis的整合也变得更加便捷。
29 0
|
7天前
|
Java 数据库连接 数据库
spring+mybatis_编写一个简单的增删改查接口
spring+mybatis_编写一个简单的增删改查接口
18 2