如何在java中的sql replace()里面使用占位符?

时间:2017-08-03 16:59:41

标签: java sql prepared-statement

我想在java中使用占位符里面的sql替换函数。 以下是代码。

import java.sql.*;


public class TestDB {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("class");
        Connection con = DriverManager.getConnection("url","username","password");
        PreparedStatement ps = null;
        String query = "select name from image where id >= replace(?,'','','''') and id <= replace(?,'','','''') and  name like ''%aa'' order by id;"; 
        ps= con.prepareStatement(query);
        ps.setString(1, "1");
        ps.setString(2, "10");
        ResultSet rs = null;
        rs= ps.executeQuery();
        while(rs.next())
        {
            System.out.println(rs.getString(1));
        }

    }
}

我正在ps= con.prepareStatement(query);行:

  

线程中的异常&#34; main&#34; java.sql.SQLException:在语句中找到了非法字符。

实际上使用简单的create语句可以正常工作。但是,当我使用带有占位符的preparedstatement时,它会抛出异常。 谁能让我知道这是什么问题?

0 个答案:

没有答案