JOOQ 中的索引绑定打印 NULL
Indexed Binding printing NULL in JOOQ
package com.jooq.demo;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import com.jooq.utils.DBUtils;
import static org.jooq.impl.DSL.*;
import org.jooq.*;
import org.jooq.impl.*;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn = null;
conn=DBUtils.getConnection();
DSLContext create = DSL.using(conn, SQLDialect.MYSQL);
Query query = create.select(val(1),val(2),val(3),val(4),val(5),val(6),val(7),val(8),val(9),val(10),val(11),val(12))
.from(table("T"));
query.bind(1,"C1");
query.bind(2,"C2");
List<Object> val = query.getBindValues();
System.out.println(val.get(0));
}
}
Output:-
null
我正在使用 JAVA 8,连接器版本为 mysql 5.1.8,
JOOQ 版本 3.14.11
它在输出中打印空值。我期待绑定发生并且
在输出中打印 C1。
我的代码有什么错误?
此行为的原因是 val(1)
、val(2)
等属于 SQLDataType.INTEGER
类型,而您的值 "C1"
无法转换为该类型。由于历史原因,转换没有抛出异常,而是默默地失败并在那里放置了一个 null
绑定值。
package com.jooq.demo;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import com.jooq.utils.DBUtils;
import static org.jooq.impl.DSL.*;
import org.jooq.*;
import org.jooq.impl.*;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn = null;
conn=DBUtils.getConnection();
DSLContext create = DSL.using(conn, SQLDialect.MYSQL);
Query query = create.select(val(1),val(2),val(3),val(4),val(5),val(6),val(7),val(8),val(9),val(10),val(11),val(12))
.from(table("T"));
query.bind(1,"C1");
query.bind(2,"C2");
List<Object> val = query.getBindValues();
System.out.println(val.get(0));
}
}
Output:-
null
我正在使用 JAVA 8,连接器版本为 mysql 5.1.8, JOOQ 版本 3.14.11
它在输出中打印空值。我期待绑定发生并且 在输出中打印 C1。
我的代码有什么错误?
此行为的原因是 val(1)
、val(2)
等属于 SQLDataType.INTEGER
类型,而您的值 "C1"
无法转换为该类型。由于历史原因,转换没有抛出异常,而是默默地失败并在那里放置了一个 null
绑定值。