0

嗨,我有这个托管 bean,它在其中进行 MySQL 查询,这里的问题是 SQL 语句生成“=”条件而不是“LIKE”

这是我的托管 bean 中的代码。

    Connection con = ds.getConnection();
        try{

          if (con == null) {
            throw new SQLException("Can't get database connection");
            }
        } 
        finally {    
        PreparedStatement ps = con.prepareStatement(
                "SELECT * FROM Clients WHERE Machine LIKE '53'");
        //get customer data from database
        ResultSet result = ps.executeQuery();
        con.close();
        List list;
    list = new ArrayList();

    while (result.next()) {
        Customer cust = new Customer();

        cust.setMachine(result.getLong("Machine"));
        cust.setCompany(result.getString("Company"));
        cust.setContact(result.getString("Contact"));
        cust.setPhone(result.getLong("Phone"));
        cust.setEmail(result.getString("Email"));
        //store all data into a List
        list.add(cust);
    }

    return list;

此处的 SELECT 命令不会提取 'Machine' 列中的所有数字,例如 53,但如果我输入一个整数,例如完整的数字 (53544) 代替 53,则结果会被拉起。我很困惑 !!

SELECT * FROM Clients此外,如果我用整个数据库替换上面的选择语句,则存储在列表中。有任何想法吗 ?

4

2 回答 2

1

你的sql查询应该是

"SELECT * FROM Clients WHERE Machine LIKE '%53%'
于 2013-06-10T10:44:47.537 回答
1

使用通配符:

Like '%53%'

...表示包含“53”的所有内容。

Like '%53' - it ends with 53
LIKE '53%' - it starts with 53

_如果要替换单个字符,也可以使用。

你可以在这里找到一个描述

于 2013-06-10T10:47:02.900 回答