InfoQ

新闻

JLINQ: Eclipse的运行时JDBC生成器

作者 Rob Thornton译者 高昂 发布于 2007年9月5日 上午9时40分

社区
Java
主题
数据访问
标签
Hibernate,
IDE,
JPA,
JDBC,
Eclipse
BM公司的Azadeh Ahadian最近在IBM的DeveloperWorks网站发表了介绍JLINQ的文章。她认为JLINQ是“IBM为Java数据库应用开发所提供的新范例”。除了在名称上相似之外,JLINQ与微软的LINQ基本是两码事,实际上JLINQ是Eclipse的插件,提供数据库整合与运行时DAO代码的生成功能。JLINQ插件是IBM Developer Workbench的一部分,将出现在下一个版本的DB2(Viper)之中。

Eclipse的插件JLINQ提供了数据库操作以及从数据库表或SQL语句中生成Java对象的功能。Ahadian列出了JLINQ的三种主要用法:

  • Database-driven objectization (DDO):JLINQ最常用的用法就是选择一个表,为数据访问与操作生成对应的对象,或是对其进行CRUD的操作。JLINQ就是通过这种方式,在选中的数据表中,为执行CRUD操作而生成基于面向对象的类和接口。
  • Query-driven objectization (QDO):JLINQ系统通过简单的查询语句选择,然后在直观的GUI界面中,通过弹出的上下文菜单,轻松生成相关对象的类层次结构。
  • Object-relational mapping (ORM):JLINQ提供了一对一映射的机制,将类名映射到数据库中指定的表名,并且可以将类的protected或public变量映射为数据表的列名。

JLINQ可以在设计阶段生成与JPA具有相似注解(annotation)的接口。在编译阶段,JLINQ生成可以处理自定义对象CRUD操作的 接口。虽然Ahadian认为JLINQ是个ORM工具,但JLINQ并不像Hibernate那样会提供任何高级特性,例如多态、组合以及缓存等。甚至 没有任何相关文章或发布说明中提到过对于JLINQ使用的支持。JLINQ与Eclipse的集成情况很好,并且将会节省开发时间,但是由于有类似JPA 和Hibernate的存在,JLINQ要想吸引公众的注意力还会有不少困难。

由于JLINQ与微软的LINQ在功能上并不相干,所以对于JLINQ最初的反对意见来自于名称上。Jesse Davis是这样描述两者不同的:

LINQ的含义是语言集成查询(Language INtegrated Query),很明显的名不符实。我不清楚是否微软对于LINQ的名称具有特殊的权利,但我认为IBM使用这样一个从技术角度来讲存在谬误的词条,这种做 法是有欠妥当的。LINQ实际上是集成在编程语言自身的机制。...JLINQ并不属于此类。JLINQ仅是IBM为Eclispe制作的新的ORM风格 的代码生成器。

Channel9的一个讨论帖子上,对于JLINQ这个名称的选择同样也引起了争论。

查看英文原文:JLINQ: Runtime JDBC Generator for Eclipse

相关赞助商

InfoQ中文站Java社区,关注企业Java社区的变化与创新,通过新闻、文章、视频访谈和演讲以及迷你书等为中国Java技术社区提供一流资讯。

没有回复

回复

独家内容

书评:敏捷模式──指向成功的路标

Ryan Cooper对Amr Elssamadisy的新书发表了评价,并认为书中提供了一种为实施敏捷量身定做的框架。本书并没有给出一种人人可用的敏捷方法,而是为读者提供一些模式和工具,用以找出哪些敏捷实践可以最有效地达到该组织机构的特定目标。

构建的可伸缩性和达到的性能:一个虚拟座谈会

这个由业界主要专家们参加的座谈会探究了在使应用程序具备尽可能好的伸缩性及性能的过程中所面临的挑战和思考过程。

OpenSocial的分析与实现

本视频主要对OpenSocial进行了分析,并对实现的方式进行了介绍。其中包括:OpenSocial的开发经验、Container Provider的技术准备、平台的构成要素、具体的规范、以及对未来的展望。

缓存系统MemCached的Java客户端优化历程

Memcached在大型网站被应用得越来越广泛,但是Java客户端并不多,本文作者基于现有的开源客户端进行了封装优化,并翔实记录了这一过程。

超越SOA:动态业务应用的新企业应用框架(2)

在他们文章的第二部分,作者探讨了动态业务应用的架构并介绍了资源容器的概念。他们示范了如何在JEE之上构建这个架构,以及它如何影响实现生产力。

使用ClickOnce细分发布版本

ClickOnce让WinForms应用程序的部署轻而易举。David Cooksey演示了如何在ASP.NET中编写一个HttpHandler来实现对ClickOnce部署的版本细分。

敏捷教练,从A到Z

敏捷带来了新的领导者角色,“敏捷教练”。它是不是跟“部门经理”或“技术领导”一样,只是换汤不换药呢?教练Pat Kua在这篇启蒙文章中对敏捷教练一职做了概述。

利用Ruby简化你的Java测试(进阶篇)

本文是Productive Java with Ruby系列文章的第二篇,通过上一篇的介绍,我想大家对如何利用Ruby进行单元测试有了一个基本的了解,从这里开始,我将和大家一起讨论一些利用Ruby进行单元测试时的高级话题。