Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
package cn.bdqn.mhouse.util;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
 * 
*    
* 项目名称:mhouse   
* 类名称:MybatisUtil   
* 类描述:   工具类
* 创建人:Mu Xiongxiong  
* 创建时间:2017-3-15 下午1:31:54   
* 修改人:Mu Xiongxiong   
* 修改时间:2017-3-15 下午1:31:54   
* 修改备注:   
* @version    
*
 */
public class MybatisUtil {
  private static SqlSessionFactory factory;
  private static ThreadLocal<SqlSession> sl=new ThreadLocal<SqlSession>();
  private static final String RESOURCE="mybatis-config.xml";
  /**
   * 静态初始化
   */
  static{
    try {
      Reader reader=Resources.getResourceAsReader(RESOURCE);
      SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
      factory=builder.build(reader);
    } catch (IOException e) {
      e.printStackTrace();
    }catch (Exception e) {
      e.printStackTrace();
    }
  }
  /**
   * 
  * @Title: getSession
  * @Description: 该方法的主要作用:打开session
  * @param  @return 设定文件  
  * @return  返回类型:SqlSession   
  * @throws
   */
  public static SqlSession getSession(){
    SqlSession session=sl.get();
    if(session==null){
      session=factory.openSession();
      sl.set(session);
    }
    return session;
  }
  /**
   * 
  * @Title: closeSession
  * @Description: 该方法的主要作用:关闭session
  * @param   设定文件  
  * @return  返回类型:void   
  * @throws
   */
  public static void closeSession(){
    SqlSession session=sl.get();
    sl.set(null);
    if(session!=null){
      session.close();
    }
  } 
}
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
6月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
538 10
|
7月前
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
203 0
|
7月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
401 0
|
9月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
Java 开发者 Windows
Java 数据类型划分(字符型)|学习笔记
快速学习 Java 数据类型划分(字符型)
225 0
|
Java 开发者
Java 数据类型划分(整型类型)|学习笔记
快速学习 Java 数据类型划分(整型类型)
175 0
|
Java 开发者
Java 数据类型划分(初见 String 类)|学习笔记
快速学习 Java 数据类型划分(初见 String 类)
165 0
|
Java 开发者
Java 数据类型划分(布尔型)|学习笔记
快速学习 Java 数据类型划分(布尔型)
185 0
|
Java C语言 C++
Java 的数据类型划分(数据类型划分)| 学习笔记
快速学习 Java 的数据类型划分(数据类型划分)
221 0
Java 的数据类型划分(数据类型划分)| 学习笔记
|
4月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
265 1