如下面的例子:?中是一個(gè)列表,如'1','2','3'.替換后應(yīng)該是 in ('1','2','3'),但是我把'1','2','3'傳進(jìn)取卻不能正確的執(zhí)行取得結(jié)果,跟蹤發(fā)現(xiàn)參數(shù)被當(dāng)初一個(gè)字符串了里面的引號(hào)被轉(zhuǎn)義了,變成in (''1','2','3'') ,導(dǎo)致結(jié)果不對(duì),請(qǐng)問(wèn)像sql中 in (?),preparedStatement設(shè)置參數(shù)要怎么處理?
2 回答

拉丁的傳說(shuō)
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
剛又看了java里的preparedStatement
應(yīng)該這樣處理:
PreparedStatement statement = connection.prepareStatement("Select * from test where field in (?)");
Array array = statement.getConnection().createArrayOf("VARCHAR", new Object[]{"A1", "B2","C3"});
statement.setArray(1, array);
ResultSet rs = statement.executeQuery();
或者:
in(?,?,?)
然后多次賦值
添加回答
舉報(bào)
0/150
提交
取消