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这个名称的选择同样也引起了争论。
\