簡體   English   中英

在准備好的語句中搜索字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM