JdbcTemplate:实现分页功能

实现分页

在数据多的时候,不分页JVM就会挂掉.由于是用的JdbcTemplate,所以就研究了下JdbcTemplate的分页.记录如下.

java

源码

部分代码,后面看时间更新为完整.

分页实体类:

生成分页的SQL语句:

InterSystems Cache 数据库的分页工具类(下面有MySQL的):

分页查询组件:

MySQL分页实现:

Oracle分页实现:

Maven:No compiler is provided in this environment

问题

在执行maven install的时候,提示如下错误:

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

maven logo

解决

解决办法是:在maven的conf/settings.xml中,添加如下代码即可(依照版本来,我这里是jdk 1.8就写1.8):

Java 8:Stream的使用

记录

开始在工作中接触一些Java 8 的内容,也开始使用Stream处理集合.下面是一些代码,有的是自己写的,有的来源于网上.

java标志

源码

读书:《深入浅出MyBatis技术原理与实战》

介绍

在不少项目中使用过MyBatis,但一直没机会深入了解过其相关知识.这次获知这本书之后,终于得以深入了解其运行原理.因原书并未附带相关随书源码.因此在看书时,非常不方便.本文后面会附上我看书时整理的源码一份(mybatis-spring 整合,及最后一章未整理),所有源码均可运行.我的环境是JDK1.8,Idea 2017.1,MySQL5.7,关于书籍信息如下:

  • 书名:深入浅出MyBatis技术原理与实战
  • 作 者:杨开振
  • ISBN:978-7-121-29594-2

mybatis logo

笔记

下面是一些笔记,供以后参考.

MyBatis基本构成:

SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口).
SqlSessionFactory:依靠工厂来生成SqlSession(会话).
SqlSession:是一个既可以发送SQL去执行并返回结果,也可以获取Mapper的接口.
SQL Mapper:它是MyBatis新设计的组件,它是由一个Java接口和XML文件(或注解)构成的,需要给出对应的SQL和映射规则.它负责发送SQL去执行,并返回结果.

MyBatis配置XML文件层次结构(顺序不能变)

配置示例(application.properties)

需要配合上面的文件使用.

maven如果不能读取xml或者properties配置文件?

首选配置properties文件方式进行配置.

MyBatis映射器主要元素

特殊字符串的替换和处理(#和&)

columns = “c1,c2,c3″ #{columns} 会直接显示”c1,c2,c3”,会对参数进行处理.

${columns} 不会处理参数,会直接显示.例如(c1,c2,c3)

需要注意SQL注入的问题.

常用工具类

二级缓存默认不开启. 开启需要在映射文件中(查询数据中),添加

即可开启二级缓存.

元素 作用 备注
if 判断语句 单条件分支判断
choose(when,otherwise) 相当于Java中的if else语句 多条件分支判断
trim(where,set) 辅助元素 用于处理一些SQL拼接问题
foreach 循环语句 在in语句等列举条件常用

映射器的组成

MappedStatement:它保存映射器的一个节点(select|insert|delete|update),包括许多我们配置的SQL,SQL的id,缓存信息,resultMap,parameterType,resultType,languageDriver等重要配置内容;

SqlSource:它是提供BoundSql对象的地方,它是MappedStatement的一个属性.

BoundSql:它是简历SQL和参数的地方.它有3个常用的属性:SQL,parameterObject,parameterMappings.

1.Executor是执行SQL的全过程,包括组装参数,组装结果集返回和执行SQL过程,都可以拦截;
2.StatementHandler是执行SQL的过程,我们可以重写执行SQL的过程;
3.ParameterHandler,拦截执行SQL的参数组装;
4.ResultSetHandler用于拦截执行结果的组装.

源码及使用

使用源码可遵循如下步骤:

  1. 配置JDK1.8环境
  2. 配置MySQL5.6
  3. 配置Maven或Gradle
  4. 配置IDEA,并将源码包中的mybatis.sql导入到数据库中
  5. over…

贴一个maven的配置(使用了阿里的maven仓库,速度杠杠的).

源码下载.mybatils 源码

Java:JdbcTemplate使用in进行更新

开篇

很久没发东西,主要是不知道写啥,有点词穷了…(囧)

这是前几天遇到的一个问题,然后找到了解决方案.

贴在这做个记录吧.

另外,使用Python 3+的话,格式化字符串可以使用,如下方式了[更多官方例子(英文)]:

想来,我用着Python3.5的版本,却还在用百分号格式化字符串(……..).

好了,回归正题.

下面是Java代码,使用的…………..自然是Spring的JdbcTemplate了……[官方的介绍(英文)]

java
image-2490

重点在这..

数据库是MySQL.差点忘了……