【问题标题】:Jooq insert statement without code generation无需代码生成的 Jooq 插入语句
【发布时间】:2017-03-15 10:26:12
【问题描述】:

我正在使用 jOOQ 来生成 SQL 语句。如何创建插入语句?我能够生成一个选择语句,但我无法生成一个插入语句。我可以像这样创建一个选择语句:

String selectSQL = create.select().from("author").getSQL();

如何为插入创建 SQL 语句

try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        dbConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/library?autoReconnect=true&useSSL=false","root","abcd");
        DSLContext create = DSL.using(dbConnection,SQLDialect.MYSQL);
         String SQl = create.insertInto(Table<?> table("author"), Field<Object> field("id"),Field<Object> field("first_name").Field<Object> field("last_name")).values("1", "askdfj", "kdjvk").getSQL();

    }

【问题讨论】:

    标签: java mysql jdbc jooq


    【解决方案1】:

    你需要使用:

    create
        .insertInto(table("author"), field("id"), field("first_name"), field("last_name"))
        .values("1", "askdfj", "kdjvk")
    

    其中tablefieldorg.jooq.impl.DSL.tableorg.jooq.impl.DSL.field 的静态导入。

    请注意,您的代码有几个语法错误(例如 Table&lt;?&gt;Field&lt;Object&gt; 不属于它们,以及 . 而不是 ,)。

    【讨论】:

      【解决方案2】:

      在官方文档中,您有一个example

      create.insertInto(AUTHOR,
          AUTHOR.ID, AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME)
        .values(100, "Hermann", "Hesse");
      

      【讨论】:

      • 这是一个代码生成示例,但这里的操作使用的是动态/无类型变体。
      猜你喜欢
      • 2018-03-29
      • 2014-09-09
      • 2017-12-03
      • 2017-08-13
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 2014-03-06
      相关资源
      最近更新 更多