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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
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;
  }
}


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
4月前
|
存储 关系型数据库 MySQL
使用命令行cmd查询MySQL表结构信息技巧分享。
掌握了这些命令和技巧,您就能快速并有效地从命令行中查询MySQL表的结构信息,进而支持数据库维护、架构审查和优化等工作。
407 9
|
8月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
10月前
|
存储 SQL 关系型数据库
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
273 25
|
10月前
|
SQL 关系型数据库 MySQL
数据库数据恢复——MySQL简介和数据恢复案例
MySQL数据库数据恢复环境&故障: 本地服务器,安装的windows server操作系统。 操作系统上部署MySQL单实例,引擎类型为innodb,表空间类型为独立表空间。该MySQL数据库没有备份,未开启binlog。 人为误操作,在用Delete命令删除数据时未添加where子句进行筛选导致全表数据被删除,删除后未对该表进行任何操作。
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
1863 5
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
12月前
|
存储 关系型数据库 MySQL
10个案例告诉你mysql不使用子查询的原因
大家好,我是V哥。上周与朋友讨论数据库子查询问题,深受启发。为此,我整理了10个案例,详细说明如何通过优化子查询提升MySQL性能。主要问题包括性能瓶颈、索引失效、查询优化器复杂度及数据传输开销等。解决方案涵盖使用EXISTS、JOIN、IN操作符、窗口函数、临时表及索引优化等。希望通过这些案例,帮助大家在实际开发中选择更高效的查询方式,提升系统性能。关注V哥,一起探讨技术,欢迎点赞支持!
562 5
|
12月前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
780 3
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
204 4

推荐镜像

更多