相关疑难解决方法(0)

Java:JOOQ持久性框架性能和反馈

偶然发现了一个很好的SQL构建器框架,名为JOOQ.BTW,俄语JOOQ听起来像名词意思是"虫子"(作为昆虫),"甲虫";)

如果您对JOOQ有任何反馈,那就是性能等,请分享.有关JOOQ的博客链接也很受欢迎.

java persistence sqlbuilder jooq

26
推荐指数
1
解决办法
5008
查看次数

在java中生成SQL字符串的好方法?

我不是在寻找像Hibernate这样的持久层,我只想生成sql-strings,它们应该兼容PreparedStatement.我已经尝试了像Squiggle这样的库,但它只支持SELECT,我还想生成插入和更新.理想的用法是:

generateInsertOn("myTable").addValue("value1").addValue("value2").generate();
Run Code Online (Sandbox Code Playgroud)

会产生这个字符串:

"INSERT INTO myTable (value1, value2) VALUES(?, ?)"
Run Code Online (Sandbox Code Playgroud)

我知道,有存在很多像我这样的,如题,但他们不相当问同样的事情,和我一样.

干杯,

java mysql sql generator sqlbuilder

9
推荐指数
1
解决办法
7489
查看次数

是否有用于将谓词定义为类似SQL的字符串的Java库?

Lambdaj(以及其他一些类似的库)提供了一个having函数,它允许我像这样定义谓词(例如直接来自lambdaj Features页面):

List<Person> oldFriends = 
    filter(having(on(Person.class).getAge(), greaterThan(30)), meAndMyFriends);
Run Code Online (Sandbox Code Playgroud)

我非常希望能够使用简单的字符串语法定义我的Java谓词对象"age > 30"- 类似于SQL where子句 - 所以上面的过滤器变成了类似的东西:

List<Person> oldFriends = 
    filter(having(Person.class, "age > 30"), meAndMyFriends);
Run Code Online (Sandbox Code Playgroud)

这样的库是否存在,或者是否有人可以为我自己构建一个查询解析部分推荐一些构建块?我实际上并不介意它创造了什么样的谓词(hamcrest,guava等).

在我的头脑中,我可以想到它支持的许多事情:平等和不平等,自定义和原始类型,和/或/不,括号,LIKE(对于字符串),in(...)enum的解释名称,属性的属性.

这是一个更复杂的谓词的例子:

"salesCount > 10 and (country='UK' or city='New York')
and attitude not in (MENACING, RUDE)
and product.name <> 'Widget' "
Run Code Online (Sandbox Code Playgroud)

(此示例假定谓词应用于的SalesPerson类(比如一个类)具有方法getSalesCount(),getCountry()和getCity(),以及getAttitude()(返回枚举).它还具有属性getProduct,返回带有getName方法的类型.

动机:我们有一个客户端 - 服务器系统,它有多种语言API(目前是Java和C#); 我正在寻找一种语言无关的方式让用户指定一个谓词,该谓词过滤一组对象,其中的确切内容只有服务器进程知道(用Java编写).

java sql predicate el lambdaj

6
推荐指数
1
解决办法
2219
查看次数

如何在没有域类的情况下在 querydsl 中构造查询

在寻找 Java 库以与数据库无关的方式构建查询时,我遇到了许多库,包括 iciql、querydsl、jooq、joist、hibernate 等。

我想要一些不需要配置文件并且可以使用动态模式的东西。对于我的应用程序,我在运行时了解数据库和模式,因此我不会有任何配置文件或模式的域类。

这似乎是 querydsl 的核心目标之一,但是通过 querydsl 的文档,我看到了很多使用域类构建动态查询的示例,但我没有遇到任何解释如何仅使用我有关于架构的动态信息。

Jooq 提供了这样的功能(参见:http : //www.jooq.org/doc/3.2/manual/getting-started/use-cases/jooq-as-a-standalone-sql-builder/)但有一个限制性许可证,如果我想将我的注意力扩展到 Oracle 或 MS SQL(我可能不喜欢但需要支持)。

有 querydsl 经验的人可以让我知道 querydsl 是否可以实现这样的事情,如果可以,如何实现。

如果有人知道任何其他可以满足我的要求的人,我将不胜感激。

java sql database-agnostic querydsl jooq

5
推荐指数
2
解决办法
5846
查看次数