【发布时间】:2011-10-22 03:50:57
【问题描述】:
是否存在可以创建 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" */
也许我是盲人,但我找不到类似的东西......
显然,我想要一些方法/类能够编写 inserts 和 updates 以及其他东西......
我排除 ORM 有两个原因:
- 数据库架构是“旧”的,我无法更改它,我不确定如何调整 ORM 以遵循我们的数据库
- AFAIK ORM 需要更改模型(可能添加基类,可能您需要实现接口)并且我的项目中的模型又大又旧且脾气暴躁
- 说实话,我不太喜欢 ORM:对象和集合论不是用来映射的(恕我直言)
【问题讨论】:
-
为什么不使用 ORM?因为有
plenty!!! -
这不存在的原因可能有两个:a.) 用有意义的方法名称替换字符串连接并不是 很大的收获和 b.) 你不应该首先使用字符串操作来构建完整的选择(尤其是不是 where 条件)。
-
有趣的是,上周我也有同样的想法! :)
-
由于
SELECT,INSERT,UPDATE,DELETE语句可能因您使用的数据库服务器而异。所以没有方言很难使用它。在 Java 中,最常见的实用程序是 Hibernate,它具有所有这些功能以及更多功能。 -
@Joachim Sauer 我总是忘记语句的精确语法(我不经常去这个级别)并且 IDE 根本无法解析字符串,所以我在运行时发现了语法问题(是的,我做使用unittest,但每次我发现错误总是只是一个错字,如“SLECT”或“WERE”)
标签: java sql code-generation