I'm not looking for a persistence layer like Hibernate, I just want to generate SQL-strings and they should be compatible with PreparedStatement
. I've tried libraries such as Squiggle, but it only supports SELECT
, I would also like to generate insert and updates. An ideal usage would be something like:
generateInsertOn("myTable").addValue("value1").addValue("value2").generate();
that would generate this string:
"INSERT INTO myTable (value1, value2) VALUES(?, ?)"
I know that there exists questions that are a lot like mine, such as this, but they don't quite ask the same thing as I do.
For arbitrary SQL, use jOOQ. jOOQ currently supports
SELECT
,INSERT
,UPDATE
,DELETE
,TRUNCATE
, andMERGE
. You can create SQL like this:The supported syntax is quite rich. You will also find support for clauses such as
ON DUPLICATE KEY UPDATE
,FOR UPDATE
,LOCK IN SHARE MODE
, etc.For more details, see
http://www.jooq.org
(Disclaimer, I work for the company behind jOOQ)