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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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;
  }
}


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
50 3
|
1月前
|
SQL 关系型数据库 MySQL
案例剖析:MySQL唯一索引并发插入导致死锁!
案例剖析:MySQL唯一索引并发插入导致死锁!
105 0
案例剖析:MySQL唯一索引并发插入导致死锁!
|
1月前
|
SQL 关系型数据库 MySQL
案例剖析,MySQL共享锁引发的死锁问题!
案例剖析,MySQL共享锁引发的死锁问题!
|
1月前
|
消息中间件 关系型数据库 MySQL
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
141 0
|
7天前
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
25天前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
50 3
|
28天前
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
|
1月前
|
缓存 Java 数据库连接
使用MyBatis缓存的简单案例
MyBatis 是一种流行的持久层框架,支持自定义 SQL 执行、映射及复杂查询。本文介绍了如何在 Spring Boot 项目中集成 MyBatis 并实现一级和二级缓存,以提高查询性能,减少数据库访问。通过具体的电商系统案例,详细讲解了项目搭建、缓存配置、实体类创建、Mapper 编写、Service 层实现及缓存测试等步骤。
|
10天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
25 1
|
12天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
28 4