JDBC常用操作

一、查询条件中使用IN

可以使用JDBC提供的setArray方法设置(此处由于无Oracle数据库暂未验证)
示例:

1
2
3
4
String sql = "select * from table_name where id in ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setArray(1, conn.createArrayOf("BIGINT", instanceIdList.toArray()));
ps.executeQuery();

MySQL环境下,执行 setArray会抛出java.sql.SQLFeatureNotSupportedException异常,需要自行进行处理。
个人处理方案如下(对于查询字段为数字类型时,拼接单引号'不会导致索引失效)

1
2
3
4
5
6
7
8
9
private static String forEach(List<String> idList) {
StringBuilder builder = new StringBuilder("(");
idList.forEach(id -> {
builder.append("'").append(id).append("'").append(",");
});
builder.deleteCharAt(builder.length() - 1);
builder.append(")");
return builder.toString();
}

JDBC常用操作
https://probiecoder.cn/java/jdbc.html
作者
duwei
发布于
2024年5月8日
许可协议