0%

mybatis实现分页

Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的逻辑分页,而非物理分页。如果想要实现物理分页,则可以在sql内直接书写带有物理分页的参数来完成,也可以使用分页插件来完成物理分页。

分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。

分页插件

阅读全文 »

mybatis的sql节点

mybatis的mapper映射文件中的sql节点在初始化时会被解析成MappedStatement对象,其中sql语句会被解析为SqlSource对象,sql语句中定义的动态sql节点、文本节点等则由SqlNode接口的相应实现类表示

SqlSource

1
2
3
4
5
public interface SqlSource {

BoundSql getBoundSql(Object parameterObject);

}
阅读全文 »

OGNL表达式

mybatis在编写xml的时候,

spring自定义属性编辑器

属性编辑器用来解析bean的配置文件中的属性标签,spring的BeanWrapperImpl默认会注册CustomCollectionEditor(集合)、CustomMapEditor(Map)、CurrencyEditor(货币)、ByteArrayPropertyEditor等,可以使用CustomEditorConfigurer来注册属性编辑器,CustomEditorConfigurer实现了BeanFactoryPostProcessor接口,由spring容器自动检测并执行

步骤

  • 创建一个实现PropertyEditorRegistrar接口的类,重写registerCustomEditors方法,负责向spring容器注册属性编辑器
  • PropertyEditorRegistrar实现类作为bean进行注册
  • 配置CustomEditorConfigurer这个bean,并写入属性propertyEditorRegistrars

springboot热部署

热部署是在服务器运行时重新部署项目,直接加载整个应用,会释放内存,不过比较耗时

配置tomcat实现热部署

有三种方式

方式一

把项目web文件放在webapps目录下

方式二

在tomcat\conf\server.xml中的<host>标签内添加<context>标签

1
<context debug="0" docBase="项目路径" path="访问路径" privileged="true" reloadable="true"></context>

方式三

在tomcat\conf\catalina\localhost中添加一个项目的xml

1
<context docBase="项目路径" reloadable="true"></context>

会使用xml文件的名字作为访问路径

阅读全文 »