pureQuery带注释的方法风格简介

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 带注释的方法的代码生成

时间: 2024-08-08 16:39:18

pureQuery带注释的方法风格简介的相关文章

pureQuery内联方法风格简介

IBM pureQuery 是一种高性能 Java 数据访问平台,其目标主要是简化数据访问应用程序的开发和管理.它由工具.API 和运行时组成.pureQuery 引入了两种编程风格,以帮助用户通过简单但是强大的 API 访问数据库.本文介绍其中的一种风格,即内联方法编程风格,并讨论如何使用它有效地查询和更新数据库.本文还探索使用内联方法编程风格的一些优点和关键特性. 简介 pureQuery 为 SQL 执行引入了两种编程风格:内联方法编程风格和带注释的方法编程风格.这些编程风格为存储和检索对

Python文件去除注释的方法

  本文实例讲述了Python文件去除注释的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 7

c语言-如何写一个求质数的C语言程序,带注释的,自己做了很久都有问题,老师讲也没听懂。

问题描述 如何写一个求质数的C语言程序,带注释的,自己做了很久都有问题,老师讲也没听懂. 如何写一个求质数的C语言程序?求大神帮帮忙,带注释 //,谢谢了 新人求助. 解决方案 /*求素数的三种方法 一:for(i=2;i<=(n-1);i++) if(n%i==0)i在2到n-1之间任取一个数如果n能被整除则不是素数,否则就是素数 二:for(i=2;i<n/2;i++) if(n%i==0) /*i在2到n/2之间任取一个数如果n能被整除则不是素数,否则就是素数 三:for(i=2;i&l

Lombok介绍及使用方法 lombok简介

转载 http://www.cnblogs.com/holten/p/5729226.html Lombok介绍及使用方法 lombok简介 lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间之后感觉的确挺不错,所以特此来推荐一下. lombok的官方地址:https://projectlombok.org/ lombok的Github地址:https://github.com/rzwitserloot/lombok 那

Python中的lstrip()方法使用简介

  这篇文章主要介绍了Python中的lstrip()方法使用简介,是Python入门的基础知识,需要的朋友可以参考下 lstrip()方法返回所有字符被去除开头字符串(缺省为空格字符)的一个复本. 语法 以下是lstrip()方法的语法: ? 1 str.lstrip([chars]) 参数 chars -- 您提供要剪裁的字符. 返回值 此方法返回所有字符都被去除字符串开头(缺省为空格字符)的字符串的一个复本. 例子 下面的例子显示了lstrip()方法的使用. ? 1 2 3 4 5 6

Python中的hypot()方法使用简介

  这篇文章主要介绍了Python中的hypot()方法使用简介,是Python入门所需掌握的基础知识,需要的朋友可以参考下 hypot()方法返回的欧几里德范数 sqrt(x*x + y*y). 语法 以下是hypot()方法的语法: ? 1 hypot(x, y) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数 参数 x -- 这必须是一个数值 y -- 此方法返回欧几里德范数 sqrt(x*x + y*y) 返回值 此方法返回欧几里德

从windows 上复制代码paste到linux虚拟机里vim编辑器 带注释的行会花掉

问题描述 从windows 上复制代码paste到linux虚拟机里vim编辑器 带注释的行会花掉 大家有解决办法吗 解决方案 字符节不同,你好好看看你设置的字符集 解决方案二: 中文字体支持的原因吧,导致字符乱码了

求大神指点 java无参带返回值方法问题

问题描述 求大神指点 java无参带返回值方法问题 max=(age>max)?age:max; 这这话是什么意思? 解决方案 max=(age>max)?age:max; 这是三步运算给max赋值,就相当于: f(age>max){ max=age; }else{ max=max; } 解决方案二: 如果age>max为真,则max=age,否则max=max 解决方案三: 如果age>max,就把age放入max 这个程序配合循环可以找到年纪最大的人 解决方案四: jav

nginx 301跳转到带www域名方法rewrite(转)

首先一.得在你的域名管理里面定义 test.com和www.test.com指向你的主机ip地址,我们可以使用nslookup命令测试:直接输入 nslookup test.com和nslookup www.test.com 都有指向ip的A记录即可. 第二.我们才能在nginx里面配置rewrite规则.打开 nginx.conf文件找到你的server配置段: 1 2 3 4 5 6 7 8 server { listen 80; server_name www.test.com test.