Java库写sql语句?

时间:2011-08-08 06:47:48

标签: java sql code-generation

是否存在可以创建sql语句的java库? 我不是在寻找一些奇特的东西,只是在“字符串操作”级别:我只是使用jdbc(使用Preparestatements和Resultsets)但我真的不想传递包含SQL代码的巨大字符串......

我需要的是一个“简单”的Select类(或类似的东西);在我看来,我真正想做的就是能够做到

SQLStatement stat = Select("*").from("table").where("condition and condition").orderby("something");
ResultSet rs = Connection.getResultSet(stat.toString());
/* equals to "select * from table where condition and condition order by something" */

也许我是瞎子,但我找不到那样的东西......

显然,我希望某些方法/类能够编写insertupdate以及其他内容...

我排除ORM有两个原因:

  1. db模式它是“旧的”我无法改变它,我不知道如何使ORM适应我们的数据库
  2. AFAIK ORM需要更改模型(可能需要添加基类,也许你需要实现一个接口)并且我项目中的模型很大,老而脾气暴躁
  3. 我不太喜欢ORM:对象和集合理论不是映射(恕我直言)

4 个答案:

答案 0 :(得分:2)

ORM(对象关系映射)库是线索。

Hibernate是最成熟的。

Hibernate-s Criteria API是面向对象的方式来创建您希望的查询。 Criteria API doc.

答案 1 :(得分:1)

Hibernate很可能是你正在寻找的东西。它包含许多高级功能,但SQL语句更直接。

查看他们的网站:http://www.hibernate.org/

我还建议浏览本指南:

https://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java

答案 2 :(得分:1)

尝试SQLBuilder项目。老实说,我没有用过这个。看看他们的文档,我认为它可能符合您的要求。

您还可以尝试在Sourceforge,Google代码等中找到类似的API。

答案 3 :(得分:0)

我不确定您是将Java用于本机应用程序还是用于Web。 如果您使用Java for web,可以考虑使用Play framework

简单且包含Hibernate,实现非常简单(在自己实现Hibernate时更容易)。