pureQuery 是一种高性能 Java 数据访问平台,其目标主要是简化数据访问应用程序的开发和管理。它由工具、API 和运行时组成。本文介绍 pureQuery 带注释的方法风格 —— 这是一种简单、灵活的风格,属于命名查询(named-query)范例,可以静态或动态地执行 SQL。本文先解释为什么开发人员要选择使用带注释的方法风格编写 pureQuery 应用程序,再解释带注释的方法风格与 pureQuery 内联编程风格之间的差异,并简要概述 pureQuery 带注释的方法的强大特性。
概述
本文讨论与带注释的方法的编程风格相关的以下主题:
描述带注释方法的编程风格
选择使用带注释方法编程风格的原因
使用带注释的方法风格开发 pureQuery 应用程序的步骤(立即阅读该 小节)。
描述代码生成,给出生成的代码示例
描述在 pureQuery 接口中定义带注释的方法的需求
使用 pureQuery 接口执行 SQL
介绍带注释的方法风格的一些选择特性,例如批处理、生成的 RowHandlers 和 ParameterHandlers、生成的键以及使用 XML 配置文件修改代码生成器的输出
如果您已经准备好开始编程,那么可以跳到 技术性崩溃。接下来介绍一个简单的例子展示为什么开发人员要选择使用带注释的方法风格开发 pureQuery 应用程序。
什么是带注释的方法编程风格?
为了介绍带注释的方法编程风格,首先需要理解这两种 pureQuery 编程风格的背景知识。
内联编程风格 的开发目的是为了满足客户对快捷、简便的编程风格的需求,这种风格很容易被熟悉 Java Database Connectivity(JDBC)的开发人员掌握 —— 其特点就是可以更快、更简单地编程。内联风格最初的目标是减少 JDBC 程序员熟悉的一些重复的编程任务,同时提供一个 API,工具可以轻松地利用该 API 将数据访问开发与 Java 开发联系在一起。由于应用程序中定义 SQL 语句的方式,这种编程被称作 “内联”。在内联风格中,SQL 语句是在运行时声明或构造的,并作为 String 的实例传递给公共的 Data 接口方法。内联风格可以最大化编程速度和开发灵活性,并支持动态执行。后期文章将提供对公共 Data 接口 API 的概述。关于内联风格的更多信息,可以在 pureQuery 文档中找到(参见 参考资料)。
本文主要讨论带注释的方法编程风格,这种风格的演化和内联编程风格相似,但是它还有另外一个目标,那就是最大化编写的 pureQuery 应用程序的可配置性和安全性。带注释的方法风格是专门为同时支持动态和静态数据库访问而设计的。其目的是满足对类似于 Java Persistence API(JPA)的用于数据访问的命名查询编程接口的客户需求 —— 更快、更简单地编程,必要时能够支持静态执行。
与内联编程风格一样,带注释的方法也起源于应用程序定义 SQL 语句的方式。在带注释的方法风格中,SQL 字符串被定义为 Java 5.0 的一个元素:pureQuery Annotation。pureQuery 为此目的定义的方法注释有 @Select (注释 SQL 查询)、 @Update (注释 SQL DML 语句)和 @Call (注释 SQL CALL 语句)。这些注释被放在用户定义接口内的用户定义方法声明中。代码生成器预处理接口,为每个已声明的、带有注释的方法生成实现代码。生成的实现代码使用 pureQuery 运行时执行注释中定义的 SQL 语句。在注释元素中预先定义 SQL 字符串,可以简化静态执行支持。
Data Studio 对带注释的方法风格的工具支持包括一个代码生成器,它可以创建用户编写的带注释的方法的实现。代码生成的结果就是第二个实现类,该实现类被编译并用于执行初始接口中声明的 SQL 语句。图 1 说明了用户定义的带注释的方法接口、代码生成器和生成的实现类之间的关系。
图 1. pureQuery 带注释的方法的代码生成