gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 06:28:54 24 4
gpt4 key购买 nike

我不是在寻找像 Hibernate 这样的持久层,我只是想生成 SQL 字符串,它们应该与 PreparedStatement 兼容。 .我已经尝试过诸如 Squiggle 之类的库,但它只支持SELECT,我也想生成插入和更新。理想的用法是这样的:

generateInsertOn("myTable").addValue("value1").addValue("value2").generate();

将生成此字符串:

"INSERT INTO myTable (value1, value2) VALUES(?, ?)"

我知道有些问题和我的很像,比如this , 但他们问的问题和我问的不太一样。

最佳答案

对于任意 SQL,使用 jOOQ . jOOQ 目前支持SELECTINSERTUPDATEDELETETRUNCATE合并。您可以像这样创建 SQL:

// Since you're not executing the SQL, set connection to null
Connection connection = null;
Factory create = new MySQLFactory(connection);
String sql1 = create.select(A, B, C)
.from(MY_TABLE)
.where(A.equal(5))
.and(B.greaterThan(8))
.getSQL();

String sql2 = create.insertInto(MY_TABLE)
.values(A, 1)
.values(B, 2)
.getSQL();

String sql3 = create.update(MY_TABLE)
.set(A, 1)
.set(B, 2)
.where(C.greaterThan(5))
.getSQL();

支持的语法相当丰富。您还会发现对诸如 ON DUPLICATE KEY UPDATEFOR UPDATELOCK IN SHARE MODE 等子句的支持

详情请见

http://www.jooq.org

(免责声明,我在 jOOQ 背后的公司工作)

关于java - 在 java 中生成 SQL 字符串的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6983192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com