Mybatis利用Intercepter实现物理分页】的更多相关文章

一.Interceptor介绍 Mybatis 允许用户使用自定义拦截器对SQL语句执行过程中的某一点进行拦截.默认情况,可以拦截的方法如下: Executor 中的 update().query().flushStatement().commit().rollback().getTransaction().close().isClosed()方法. ParameterHandler 中的getParameterObject()方法.setParameters()方法. ResultSetHan…
使用spring的动态路由实现数据库负载均衡 系统中存在的多台服务器是"地位相当"的,不过,同一时间他们都处于活动(Active)状态,处于负载均衡等因素考虑,数据访问请求需要在这几台数据库服务器之间进行合理分配, 这个时候,通过统一的一个DataSource来屏蔽这种请求分配的需求,从而屏蔽数据访问类与具体DataSource的耦合: 系统中存在的多台数据库服务器现在地位可能相当也可能不相当,但数据访问类在系统启动时间无法明确到底应该使用哪一个数据源进行数据访问,而必须在系统运行期间…
mybatis利用拦截器做统一分页 查询传递Page参数,或者传递继承Page的对象参数.拦截器查询记录之后,通过改造查询sql获取总记录数.赋值Page对象,返回. 示例项目:https://github.com/windwant/spring-boot-service https://github.com/windwant/spring-dubbo-service/tree/master/spring-boot-server 拦截器: package com.xxx; import com.…
springboot整合mybatis,利用mybatis-genetor自动生成文件 项目结构: xx 实现思路: 1.添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&qu…
之前写过一篇mybatis 使用经验小结 提到过多数据源的处理方式,虽然简单但是姿势不太优雅,今天介绍一些更美观的办法: spring中有一个AbstractRoutingDataSource的抽象类可以很好的支持多数据源,我们只需要继续它即可. package com.cnblogs.yjmyzz.utils; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; public class Ro…
使用PageHelper.startPage(...)进行物理分页 业务需求只显示其中的100条数据 之前是在业务逻辑里对参数limit进行了处理 后来试试sql的limit查询100条数据 但是不确定这种分页使用的是逻辑分页还是物理分页,因为物理分页mysql就会加参数limit = ?,如果再进行总查询100条限制就会出现sql语法错误 于是乎百度了一下 看了一条csdn博客 得出结论 项目代码测试了一下 果然报错了 在执行查询数据时,就会自动执行2个sql;自动执行分页,通过PageHel…
http://www.mybatis.org/spring/mappers.html http://www.mybatis.org/spring/zh/mappers.html <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3…
/** * 排序规则 */ protected String orderByClause; /** * 去重规则 */ protected boolean distinct; /** * where条件集合 */ protected List<Criteria> oredCriteria; <!-- location指的是mysql驱动jar路径 --> <classPathEntry location="D:\\TONG\\mybatiscreater\\mysq…
1.#{}和${}的区别是什么? #{}是预编译处理,${}是字符串替换. #{}是sql的参数占位符,${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换. Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值: Mybatis在处理${}时,就是把${}替换成变量的值. 使用#{}可以有效的防止SQL注入,提高系统安全性. 2.通常一个Xml映射文件,都会写一个Dao接口与之对应,…
MyBatis编程式开发 MyBatis编程式开发步骤 MyBatis和MySQL Jar包依赖 全局配置文件mybatis-config.xml 映射器Mapper.xml Mapper接口 编程式开发伪代码 @Test public void show() { SqlSession session = null; try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.get…
Mybatis常用带有禁用缓存的XML配置 <?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> <…
XML 映射配置文件 MyBatis 的配置文件包含了设置(settings)和属性(properties)信息. properties 这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递.例如: <properties resource="org/mybatis/example/config.properties"> <property name="username"…
目的: 需要对一些事物的操作进行日志记录,如果在service内进行记录,大量的代码重复,并且维护比较麻烦.所以采用AOP的方式对service进行拦截.使用自定义注解的目的则是判断是否需要记录日志和传递额外的信息. 方式: 参考后面的参考博客 1.首先新建自定义注解 @interface 自定义注解:用来标记是否需要记录日志 @Target 注解:用于描述注解的范围,比如需要注解在方法上,值为 METHOD,其他含义如下 CONSTRUCTOR 描述构造器 FILED 描述域 LOCAL_VA…
iBatis和Hibernate之间有着较大的差异,但两者解决方案很好,因为他们有特定的领域.我个人建议使用MyBatis的,如果: 你想创建自己的SQL,并愿意维持他们. 你的环境是由关系数据模型驱动的. 你的项目工作有复杂架构的. 简单地要使用Hibernate,如果: 你的环境是由对象模型驱动的,并希望自动生成的SQL. 要计算的一些区别: MyBatis: 简单 更快的开发时间 灵活 封装尺寸更小 Hibernate: 为你生成SQL,这意味着你不用花时间在SQL上. 提供了许多更先进的…
配置文件的基本结构 configuration —— 根元素 properties —— 定义配置外在化 settings —— 一些全局性的配置 typeAliases —— 为一些类定义别名 typeHandlers —— 定义类型处理,也就是定义java类型与数据库中的数据类型之间的转换关系 objectFactory plugins —— Mybatis的插件,插件可以修改Mybatis内部的运行规则 environments —— 配置Mybatis的环境 environment tr…
需求背景:由于最近总是接到一些需求,需要配合前端团队快速建设移动端UI应用或web应用及后台业务逻辑支撑的需求,若每次都复用之前复杂业务应用的项目代码,总会携带很多暂时不会用到的功能或组件,这样的初始工程就存在冗余代码. 在本文中,我们将使用Java语言开发集成环境IntelliJ IDEA(其倡言是智能编码☺),应用maven构建SpringMVC整合Mybatis+MySQL5.7(流行框架)的web项目:目的在于快速构建一个简洁纯净版的web应用工程,将其作为一个基础web-demo,以便…
一.框架基本介绍 1.概念 支持普通SQL查询.存储过程和高级映射,简化和实现了Java 数据持久化层的的开源框架,主要流行的原因在于他的简单性和易使用性. 2.特点 持久层 .ORM(对象关系映射) .轻量级.支持SQL语句. 3.工作原理 应用程序读取mybatis的配置文件,形成配置对象. 通过sqlsessionfactorybuilder读取配置对象,产生sqlsessionfactory 通过sqlsessionfactory得到sqlsession 通过sqlsession得到ma…
MyBatis入参考文档:http://mybatis.org/mybatis-3/zh/   1.properties 属性 1.在MyBatis配置文件中引用属性文件     MyBatis允许在mybatis-config.xml配置文件中加载*.properties属性文件,并使用属性文件的属性值,以提高应用的配置能力.例如在mybatis-config.xml文件所在目录下创建文件config.properties,其内容如下: mysql.driver = com.mysql.jdb…
摘录网址: http://blog.csdn.net/u010107350/article/details/51292500 对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习是最好的办法.J   一.MyBatis 配置文件基本结构 在使用mybatis框架时,首先导入其对应的jar包,并进行相应的配置,所以得对配置文件的每个参数都得了解.一个完…
mybatis 3.x源码深度解析与最佳实践 1 环境准备 1.1 mybatis介绍以及框架源码的学习目标 1.2 本系列源码解析的方式 1.3 环境搭建 1.4 从Hello World开始 2 容器的加载与初始化 2.1 config文件解析XMLConfigBuilder.parseConfiguration 2.1.1 属性解析propertiesElement 2.1.2 加载settings节点settingsAsProperties 2.1.3 加载自定义VFS loadCust…
设置参数 描述 有效值 默认值 cacheEnabled 该配置影响的所有映射器中配置的缓存的全局开关. true | false true lazyLoadingEnabled 延迟加载的全局开关.当开启时,所有关联对象都会延迟加载. 特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态. true | false false aggressiveLazyLoading When enabled, any method call will load all the lazy pr…
在前面两篇文章中,大致与大家分享了基于Java的ORM框架,Mybatis基本架构和Mybatis实现CRUD的基本原理与流程,在本篇文章中,继续与大家分享Mybatis配置文件. 通过研究Mybatis官网配置文件,不难得出如下两个结论: 结论一:Mybatis配置文件结构是固定的 结论二:Mybatis配置文件有九大类全局配置节点,且它们之间存在先后顺序关系 本篇文章重点,也是为了解决如上两个结论问题. 一  Mybatis九大类全局配置节点 (一)properties properties…
一:Mybatis简介 1.名称由来 Mybatis原名叫ibatis.Mybatis一开始属于Apache,2010年从Apache转移到了GoogleCode这个组织中. 2.Mybatis概念 Mybatis是一种基于ORM模式的,作用于Dao层的轻量级框架.和Hibernate类似,也支持各种SQL语句,也支持存储过程和高级映射等操作. 3.Mybatis优点 Mybatis比Hibernate更为轻量级; Mybatis几乎消除了所有的JDBC代码和参数的手工设置. 4.Mybatis…
一.Mybatis配置 <insert id="insert" parameterType="com.test.TestDO" keyProperty="id" useGeneratedKeys="true"> useGeneratedKeys=“true”时 , mybatis会将自增ID值 填充到 TestDO对象中的 id (keyProperty指定)属性. 二.JDBC java.sql.Statemen…
简介 MyBatis 的配置文件(默认名称为 mybatis-config.xml)包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration           配置 properties 属性 settings            设置 typeAliases             类型别名 typeHandlers          类型处理器 objectFactory          对象工…
目录 第1章 Mybatis简介 1.1 传统的JDBC编程 1.2 ORM模型 1.4 MyBatis 1.5 什么时候用MyBatis 第2章 MyBatis入门 2.2 MyBatis构成 2.3 SqlSession的作用 2.4 映射器 2.4.1 使用XML配置方式 2.4.2 使用注解的方式 2.4.3 MyBatis映射原理 2.5 生命周期 2.5.1 SqlSessionFactoryBuilder 2.5.2 SqlSessionFactory 2.5.3 SqlSessi…
欢迎转载http://www.cnblogs.com/jianshuai520/p/8669177.html大家一起努力,如果看的时候有图片半边遮挡起来的话,右键查看图片,就可以观看完整的图片,具体怎么 回事也不知道,大概是排版的问题吧. 一:Mybatis简介 1.名称由来 Mybatis原名叫ibatis.Mybatis一开始属于Apache,2010年从Apache转移到了GoogleCode这个组织中. 2.Mybatis概念 Mybatis是一种基于ORM模式的,作用于Dao层的轻量级…
MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制.缓存可以极大的提升查询效率. MyBatis系统中默认定义了两级缓存. 一级缓存和二级缓存. 1.默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启. 2.二级缓存需要手动开启和配置,他是基于namespace级别的缓存. 3.为了提高扩展性.MyBatis定义了缓存接口Cache.我们可以通过实现Cache接口来自定义二级缓存 1.一级缓存 一级缓存(local cache), 即本地缓存,…
1.properties 属性 <!--properties 引入外部配置文件 properties 的内容 resource: 引入类路径资源 url: 引入网络资源 --> <properties resource="db.properties"/> 2.setting 设置 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为.下表描述了设置中各项的意图.默认值等. 设置参数 描述 有效值 默认值 cacheEnabled…