通过减法用连字符替换查询

时间:2013-03-21 15:51:11

标签: java

我在网上搜索了好几次,但没有找到任何可以帮助我的东西(在java中)。

实际上我需要在sql表中搜索某些包含连字符的引用的行。问题是sql用减法的结果替换了我的引用。列的类型是字符串。

Statement stmt = con.createStatement();
String query = "SELECT * FROM WAREHOUSE WHERE REF LIKE('96-18')" ;
Statement statement = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

ResultSet rs = statement.executeQuery(query);
while (rs.next()) {
    System.out.println(rs.getString("S_FAMILY"));
}

在这段代码中,它将我的引用替换为78并且不会自然地返回好的结果。

我搜索了一个逃脱字符但未找到。

2 个答案:

答案 0 :(得分:2)

尝试在查询中发送String作为参数。这样做需要将Statement更改为PreparedStatement

String query = "SELECT * FROM WAREHOUSE WHERE REF LIKE(?)" ;
PreparedStatement pstatement = con.prepareStatement(query,
            ResultSet.TYPE_FORWARD_ONLY,
            ResultSet.CONCUR_READ_ONLY);
pstatement.setString(1, "96-18");
ResultSet rs = pstatement.executeQuery();

注意:您应该将"96-18"作为String变量的值发送,不要硬编码。

答案 1 :(得分:0)

你可以尝试

SELECT * FROM WAREHOUSE WHERE REF LIKE('96\-18') ESCAPE '\'

希望有所帮助