java使用JOOQ在运行时指定数据类型
我正在使用JOOQ从JAVA对象生成SQL。下面是我的代码-
String tableName = "tabel1";
String columnName = "column1";
String dataType = "varchar";
CreateTableAsStep<Record> createStmt = create.createTable(tableName).column(columnName, dataType);
它不允许设置字符串数据类型。但是使用SQLDatatype,我只得到数据类型的枚举列表,我只能在编译时提供这些数据类型。是否可以在运行时设置数据类型,或者以任何方式使用字符串名获取枚举类型
感谢您的帮助
# 1 楼答案
这里的困惑可能是“运行时”实际发生的情况。如果您在Java中有一个变量,例如:
这并不意味着这个值是一成不变的。您可以在运行时动态修改它,例如让用户从下拉列表中选择数据类型。例如,您可以执行以下操作:
然后将其提供给您的jOOQ声明:
请记住,即使编写jOOQ语句感觉像是静态SQL,但实际上是动态SQL。您正在运行时通过JOOQAPI动态构造SQL语句。与语句创建相关的所有元素都可以动态更改