尽管生成数据库元数据的源代码无疑为使用jOOQ增添了很多价值,但这不是前提条件。许多jOOQ用户将jOOQ用于您设想的相同用例。jOOQ教程中也反映了这一点,该教程将使用没有代码生成的jOOQ列为完全有效的用例。例如:
String sql = create.select( fieldByName("BOOK","TITLE"), fieldByName("AUTHOR","FIRST_NAME"), fieldByName("AUTHOR","LAST_NAME")) .from(tableByName("BOOK")) .join(tableByName("AUTHOR")) .on(fieldByName("BOOK", "AUTHOR_ID").eq( fieldByName("AUTHOR", "ID"))) .where(fieldByName("BOOK", "PUBLISHED_IN").eq(1948)) .getSQL();以类似的方式,可以使用Query.getBindValues()从任何查询中提取绑定值。
对于动态SQL语句,这种方法仍将优于普通的JDBC +字符串连接,因为您无需担心:
- 语法正确性
- 跨数据库兼容性
- SQL注入
- 绑定变量索引
(免责声明:我为jOOQ的供应商工作)



