DB2 Magazine:快速数据访问的捷径
2008-11-13 16:34:53 来源:WEB开发网图 4. Eclipse Java Perspective 中 pureQuery 的错误标记
这种工具集成可以像 Java 开发人员编写代码时一样提供交互式的、智能的代码辅助和即时 SQL 错误警告,从而大幅提升 Java 程序员的生产率。pureQuery 还使开发人员可以查询内存中不受管的对象。它可以查询堆上没有副本或存储的原始对象。这些对象可以与来自一个数据服务器查询的结果相连接,因为 pureQuery 使用完全标准的 SQL。例如,清单 1 中的查询使用 pureQuery 的内存中查询特性连接两个 Java 集合。
清单 1. 使用 pureQuery 的内存中查询 API 连接两个 Java 集合
Department[ ] depts = ...;
Employee[ ] emps = ...;
Data qoc = DataFactory.getData();
List<Employee> e = data.queryList(“select e.firstname,
e.lastname, e.empno, e.workdept from
?test.Employee as e,?test.Department as d where
e.workdept = d.deptno”,Employee.class, emps, depts);
这里不管理、复制或更改对象,而是在内存(堆)中访问它们。注意,? 占位符在 WHERE 子句中用于标识谓词值,在 FROM 子句中用于标识 Java 集合。
pureQuery 使用常规的 SQL 来查询内存中的对象。这个功能可以缓存常被访问的固定数据集,例如美国各州的查找表,然后,可以将这个表与其他数据相连接,以显示州的全称,避免与数据库服务器之间不必要的来回访问。
pureQuery 另一个有趣的特性是同一个 API 可同时用于 Java 静态和动态 SQL 数据访问。在此之前,JDBC 提供动态 SQL 数据访问,SQLJ 提供静态 SQL 数据访问。pureQuery 中对静态 SQL 的支持可以为应用程序带来很多好处——提高运行时性能、简化问题和代码错误的识别,以及提高管理能力。静态 SQL 可以监视静态 SQL 包,从而提高可管理性。静态 SQL 不仅提供最快的数据库访问方法,还允许开发人员锁定数据访问路径,以提供更确定的高性能(这对满足对终端用户的服务级别保证很重要)。最后,静态 SQL 提供了更强大的授权模型。在部署时,可以通过运行时配置将相同的 pureQuery 代码在动态与静态 SQL 之间切换,从而使开发人员可以在开发时使用动态 SQL 构建应用程序,而在部署时切换到静态 SQL,而且无需更改代码。
更多精彩
赞助商链接