当我尝试使用 JOOQ 的静态类型字段运行一些 SQL 时,数据库连接关闭
我正在将 JOOQ https://www.jooq.org/用于类型安全的 SQL,但由于某种原因连接关闭,我不知道为什么。我有一个 psql 9.6 数据库,我启用了所有日志记录,但连接在运行 JOOQ 生成的查询之前关闭,异常显示在下方。
var blockRecord = db.execute(sql -> sql.select(ATTENDANCE.BLOCK_TIME.BLOCK_ID).from(ATTENDANCE.BLOCK_TIME)
.where(ATTENDANCE.BLOCK_TIME.CLIENT_ID.eq(clientId))
.and(ATTENDANCE.BLOCK_TIME.START_TIME.eq(startTime)))
.and(ATTENDANCE.BLOCK_TIME.SCHEDULE_ID.eq(scheduleId)).fetchOne().value1();
但是,当我以这种方式运行 sql 时,连接保持打开状态并且没有出现任何问题:
//Injection vulnerable
String query = "SELECT block_id FROM attendance.block_time " +
"WHERE start_time = cast ( '" + startTime + "' as timestamp) " + " and client_id = '" + clientId + "' and schedule_id = '" + scheduleId + "'";
var record = db.execute(sql -> sql.fetch(query));
我希望连接在两者上都关闭,但是只有在 JOOQ 准备查询/语句时才会关闭....
萧十郎
相关分类