mybatis实现物理分页准备之mybatis配置文件解析及实例

2024-06-21 12:08

本文主要是介绍mybatis实现物理分页准备之mybatis配置文件解析及实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为工作需要,需要学习下mybatis的物理分页机制,为了更好的理解实现原理,进行前期的准备学习,这次学习mybatis配置文件解析及实例,感谢原作者的分享。

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration>  <!-- 参数设置 -->  <settings>  <!-- 这个配置使全局的映射器启用或禁用缓存 -->  <setting name="cacheEnabled" value="true" />  <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载 -->  <setting name="lazyLoadingEnabled" value="true" />  <!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载 -->  <setting name="aggressiveLazyLoading" value="true" />  <!-- 允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动) -->  <setting name="multipleResultSetsEnabled" value="true" />  <!-- 使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动 -->  <setting name="useColumnLabel" value="true" />  <!-- 允许JDBC支持生成的键。需要适合的驱动。如果设置为true则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如Derby) -->  <setting name="useGeneratedKeys" value="true" />  <!-- 指定MyBatis如何自动映射列到字段/属性。PARTIAL只会自动映射简单,没有嵌套的结果。FULL会自动映射任意复杂的结果(嵌套的或其他情况) -->  <setting name="autoMappingBehavior" value="PARTIAL" />  <!-- 配置默认的执行器。SIMPLE执行器没有什么特别之处。REUSE执行器重用预处理语句。BATCH执行器重用语句和批量更新 -->  <setting name="defaultExecutorType" value="SIMPLE" />  <!-- 设置超时时间,它决定驱动等待一个数据库响应的时间 -->  <setting name="defaultStatementTimeout" value="25000" />  </settings>  <!-- 别名定义 -->  <typeAliases>  <typeAlias alias="pageAccessURL" type="com.lgm.mybatis.model.PageAccessURL" />  </typeAliases>  <environments default="development">  <!-- 环境配置1,每个SqlSessionFactory对应一个环境 -->  <environment id="development1">  <!-- 事务配置 type= JDBC、MANAGED 
		1.JDBC:这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。  
		2.MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期(比如Spring或JEE应用服务器的上下文)。   
                默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false -->  <transactionManager type="JDBC" />  <!-- <transactionManager type="MANAGED">   <property name="closeConnection" value="false"/>   </transactionManager> -->  <!-- 数据源类型:type = UNPOOLED、POOLED、JNDI 1.UNPOOLED:这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢,这是对简单应用程序的一个很好的选择,因为它不需要及时的可用连接。   
                不同的数据库对这个的表现也是不一样的,所以对某些数据库来说配置数据源并不重要,这个配置也是闲置的 
		2.POOLED:这是JDBC连接对象的数据源连接池的实现,用来避免创建新的连接实例时必要的初始连接和认证时间。   这是一种当前Web应用程序用来快速响应请求很流行的方法。 
		3.JNDI:这个数据源的实现是为了使用如Spring或应用服务器这类的容器,容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用 -->  <dataSource type="UNPOOLED">  <property name="driver" value="com.mysql.jdbc.Driver" />  <property name="url" value="jdbc:mysql://localhost:3306/appdb" />  <property name="username" value="root" />  <property name="password" value="123456" />  <!-- 默认连接事务隔离级别 <property name="defaultTransactionIsolationLevel" value=""   /> -->  </dataSource>  </environment>  <!-- 环境配置2 -->  <environment id="development2">  <transactionManager type="JDBC" />  <dataSource type="POOLED">  <property name="driver" value="com.mysql.jdbc.Driver" />  <property name="url" value="jdbc:mysql://localhost:3306/appdb" />  <property name="username" value="root" />  <property name="password" value="123456" />  <!-- 在任意时间存在的活动(也就是正在使用)连接的数量 -->  <property name="poolMaximumActiveConnections" value="10" />  <!-- 任意时间存在的空闲连接数 -->  <property name="poolMaximumIdleConnections" value="5" />  <!-- 在被强制返回之前,池中连接被检查的时间 -->  <property name="poolMaximumCheckoutTime" value="20000" />  <!-- 这是给连接池一个打印日志状态机会的低层次设置,还有重新尝试获得连接,这些情况下往往需要很长时间(为了避免连接池没有配置时静默失败) -->  <property name="poolTimeToWait" value="20000" />  <!-- 发送到数据的侦测查询,用来验证连接是否正常工作,并且准备接受请求。 -->  <property name="poolPingQuery" value="NO PING QUERY SET" />  <!-- 这是开启或禁用侦测查询。如果开启,你必须用一个合法的SQL语句(最好是很快速的)设置poolPingQuery属性 -->  <property name="poolPingEnabled" value="false" />  <!-- 这是用来配置poolPingQuery多次时间被用一次。这可以被设置匹配标准的数据库连接超时时间,来避免不必要的侦测 -->  <property name="poolPingConnectionsNotUsedFor" value="0" />  </dataSource>  </environment>  <!-- 环境配置3 -->  <environment id="development3">  <transactionManager type="JDBC" />  <dataSource type="JNDI">  <property name="data_source" value="java:comp/env/jndi/mybatis" />  <property name="env.encoding" value="UTF8" />  <!-- <property name="initial_context" value=""/> <property name="env.encoding"   value="UTF8"/> -->  </dataSource>  </environment>  </environments>  <!-- 映射文件,存放sql语句的配置文件 -->  <mappers>  <mapper resource="com/lgm/mybatis/config/pageAccessURL.xml" />  </mappers>  </configuration>  
原文地址是:http://tobylxy.iteye.com/blog/1702161


这篇关于mybatis实现物理分页准备之mybatis配置文件解析及实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081182

相关文章

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Java easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文