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

简介: 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;
  }
}


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
652 0
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
946 10
|
存储 关系型数据库 MySQL
使用命令行cmd查询MySQL表结构信息技巧分享。
掌握了这些命令和技巧,您就能快速并有效地从命令行中查询MySQL表的结构信息,进而支持数据库维护、架构审查和优化等工作。
981 9
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
390 0
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1802 1
Spring boot 使用mybatis generator 自动生成代码插件
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
982 2
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
1252 0
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
920 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
1063 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块

推荐镜像

更多