我在java程序中使用mySQL JDBC驱动程序。我想在SQL查询的IN子句中传递一个ArrayList。
我确实使用了这样的预备语句,但这会抛出一个
" java.sql.SQLFeatureNotSupportedException"例外
因为mysql不支持这个。
ArrayList<String> list = new ArrayList<String>();
PreparedStatement pstmt =
conn.prepareStatement("select * from employee where id in (?)");
Array array = conn.createArrayOf("VARCHAR", list.toArray());
pstmt.setArray(1, array);
ResultSet rs = pstmt.executeQuery();
还有其他办法吗?也许使用Statement stmt。
答案 0 :(得分:3)
使用正确数量的标记构建SQL语句,并设置所有值。
注意:数据库对允许的参数数量有限制,但对MySQL(65535)来说非常高。
library(ggplot2)
set.seed(123)
df <- data.frame(names = letters[1:10],
d1 = runif(10, 0, 2),
d2 = runif(10, 0, 2))
## using a manual scale
ggplot(data=df, aes(x=names, y=d1, fill=(d1 >= 1))) +
geom_bar(stat="identity") +
scale_fill_manual(values = c(NA, "steelblue"))