我正在尝试使用Database
JOOQ
我用这段代码创建一个表:
CreateTableAsStep<Record> table = create.createTable("TestTable");
CreateTableColumnStep step = table.column("testColumn", SQLDataType.Integer);
step.execute();
这很好用,但是当涉及到插入数据时,我遇到了一个问题 该文档包括以下示例:
create.insertInto(AUTHOR)
.set(AUTHOR.ID, 100)
.set(AUTHOR.FIRST_NAME, "Hermann")
.set(AUTHOR.LAST_NAME, "Hesse")
.newRecord()
.set(AUTHOR.ID, 101)
.set(AUTHOR.FIRST_NAME, "Alfred")
.set(AUTHOR.LAST_NAME, "Döblin")
.execute();
这里AUTHOR
不是一个简单的String
,它期望org.jooq.Table<R extends Record>
我认为在创建表时可能会有return type
,但我没有找到它。谷歌没有帮助,因为Table
不是最好的搜索词; - )
问题:我怎样才能找到Table
的实例 - 我的名字是String
?
答案 0 :(得分:2)
您始终可以通过DSL.table(String)
或DSL.table(Name)
创建Table
个引用。例如:
// Assuming this:
import static org.jooq.impl.DSL.*;
create.insertInto(table(name("TestTable")))
.set(field(name("testColumn")), 1)
.execute();
另请注意我对DSL.field(Name)
的使用。
SQL
与Name
参考值得一提的是,在运行时使用纯SQL字符串(如DSL.table(String)
)或名称引用(如DSL.table(Name)
中)创建动态表/字段对象之间的区别。基本上:
在您的情况下,由于您可能创建了区分大小写的表/列名称,因此您应该更喜欢后者。更多信息可以在这里找到: