[英]Search string in prepared statement
我正在研究一個包含有關語音符號數據的數據庫。 當我使用准備好的語句搜索這樣的符號時:
String sql="select pic from picture where symbol=?";
PreparedStatement ps=null;
try{
ps=c.prepareStatement(sql);
ps.setString(1,str); //str is a symbol of a pronunciation
rs=ps.executeQuery();
while(rs.next()){
is=rs.getBinaryStream("pic");
ImageUtil.readBlob(is,"C:\\Users\\HarryTao\\Desktop\\1\\"+String.valueOf(i)+"(1).jpg");
}
}
運行該程序時,無法將存儲在數據庫中的圖片存儲在我的計算機上,並且不會發生任何錯誤或警告。
我試圖在ps的問號之前和之后添加\\"
,但是它不起作用。
我不知道問題出在哪里。 如果我更改sql
字符串以按元素的ID搜索,則效果很好。
String sql="select front from picture where picture_id=?";
...
ps.setInt(1,1);
誰能告訴我我的字符串操作出了什么問題?
Escape util方法將為您提供幫助
enter code hereString sql="select pic from picture where symbol=?";
PreparedStatement ps=null;
try{
ps=c.prepareStatement(sql);
ps.setString(1,StringEscapeUtils.escapeSql(str)); //str is a symbol of a pronunciation
rs=ps.executeQuery();
while(rs.next()){
is=rs.getBinaryStream("pic");
ImageUtil.readBlob(is,"C:\\Users\\HarryTao\\Desktop\\1\\"+String.valueOf(i)+"(1).jpg");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.