我想知道是否有任何库可以用来将 SQL 查询表示为 Java 中的对象。
在代码中,我有大量 java.lang.String 类型的静态变量,它们是手写的 SQL 查询。我会寻找具有良好流利 API 的库,它允许我将查询表示为对象而不是字符串。
Example:
Query q = select("DATE", "QUOTE")
.from("STOCKMARKET")
.where(eq("CORP", "?"))
.orderBy("DATE", DESC);
Querydsl http://www.querydsl.com支持 SQL、JPA 和 JDO 后端查询。
上面的例子变成:
query.from(stockmarket).where(stockmarket.corp.eq(someVar))
.orderBy(stockmarket.date.desc())
.list(stockmarket.date, stockmarket.quote);
Querydsl 通过 APT 使用代码生成将 SQL 模式镜像到 Java 查询类型。这样,查询是完全类型安全的(或 SQL 的“模式兼容”)。
我是 Querydsl 的维护者,所以这个答案有偏见。
我发表了 Querydsl 与其他框架的比较here http://source.mysema.com/display/querydsl/Similar+frameworks.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)