java - 在准备好的语句中搜索字符串

标签 java mysql

我正在开发一个数据库,其中包含有关音标的数据。 当我使用准备好的语句来搜索这样的符号时:

    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 link description here

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");
        }
    }

关于java - 在准备好的语句中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38710432/

相关文章:

Java 尝试调试 NullPointerException

php - mysqli 更新不起作用

MySQL优化多个内连接

php - 无法使用 php pdo 从数据库返回正确的行数

php - mysql 小数和 double 据问题

java - Android SQLite SELECT 语句不执行

java - Android 外部存储目录删除

mysql - 是否可以包含连接表中除连接表之外的所有字段?

java - 如何将 Java Servlet 与 Play 框架 Web 套接字混合?

java - Gradle 和 Spring-bootRun 找不到我的类(class)