跳到主要内容

快速检索

说明

本文会略过 API 概述部分并以更加直观的形式按照使用场景对手册做分类检索。

增、删、改

基础查询

参数传递

分页查询

动态 SQL

  • 在 SQL 语句中通过 MACRO 规则 注入预先定义的 SQL 片段(需要自行评估 SQL 注入安全风险)
  • 在 SQL 语句中通过 IFTEXT 规则${...} 语法实现 SQL 注入(需要自行评估 SQL 注入安全风险)
  • 通过 ANDORSET 规则增强 SQL 语句。
  • 利用 IN 规则,可以自动根据集合参数的数量为 SQL 语句中生成对应的 (?,?,?,?)
  • 利用 IFANDIFORIFSETIFIN 规则,允许通过一个条件参数来控制规则是否有效。
  • 规则还可以处理 一段 SQL 而不仅仅是一个参数。
  • 在 Mapper File 中使用 <if><choose>、<when>、<otherwise> 标签进行条件判断。
  • 在 Mapper File 中使用 <trim>、<where>、<set> 标签增强特定 SQL 语句的生成。
  • 在 Mapper File 中使用 <foreach> 标签处理循环需求。

对象映射

  • 使用 @Table 和 @Column 注解进行对象映射。
  • 使用 驼峰命名法 将属性自动映射到列上。
  • 掌握当遇到 名称大小写敏感、列名为关键字 时的映射技巧,可以帮您处理一些特殊问题。
  • 通过映射时的 写入策略 可以控制在新增/修改数据时列是否参与到其中。
  • 通过映射时的 写入策略 可以控制在新增/修改数据时列是否参与到其中。
  • 通过指定 @Column 注解的 keyType 属性可以设定不同的 主键生成器 策略。
  • 在 Mapper File 中使用 <entity> 标签以 XML 方式描述对象映射可以避免代码的侵入。
  • 在 Mapper File 中使用 <resultMap> 和 <entity> 两个标签很接近,但不同的是它只能处理查询结果的映射。
  • 在 Mapper File 中使用利用 自动映射 机制可以极大的简化配置。
  • 在使用构造器进行数据库操作时 语句模版 可以决定生成的 SQL 的语句元素内容。

存储过程

执行 SQL

接收结果

类型处理

  • 在 SQL 语句的参数中通过 typeHandler 选项 指定类型处理器。
  • 在对象映射中通过 @Column 注解的 typeHandler 选项 处理类型,如:抽象类型、枚举类型、JSON 序列化。
  • dbVisitor 提供了大量实用的类型处理器,当遇到类型问题可以先看下已有类型处理器是否已经支持。
  • 枚举可以通过实现 EnumOfValue 或者 EnumOfCode 接口将数据库中的 数值 或 特定 Code 作为和枚举的映射关系。
  • 使用 序列化处理器 可以自动识别您依赖中的 Fastjso2、Fastjson、Jackson、Gson 库,并按照这个顺序自动选择它们。
  • 在依赖 JTS 后 dbVisitor 可以处理 WKB 或 WKT 格式的地理信息数据。
  • 对于 InputStream/Reader 类型数组类型 dbVisitor 也有一定的支持。

数据库事务

  • 当项目是基于 Spring 技术构建时,通过 Spring 的 事务注解 完成事务控制。
  • 当项目是基于 Solon 技术构建时,通过 Solon 的 事务注解 完成事务控制。
  • 对于 Guice 和 Hasor 项目,可以使用 dbVisitor 的 @Transactional 注解 进行事务控制。
  • 在没有任何字节码增强技术的应用程序中,可以利用 TransactionHelper 工具类将对象进行增强后在通过,@Transactional 注解 进行事务控制。
  • 也可以通过 Java Code 方式、或者 模版代码 方式进行事务控制。

框架整合