0

こんにちは、MySQL クエリを作成するこのマネージド Bean があります。ここでの問題は、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 コマンドは 53 のような 'Machine' 列のすべての数値を取得するわけではありませんが、53 の代わりに完全な数値 (53544) などの整数値を入力すると、結果が取得されます。私は混乱しています !!

また、上記のselectステートメントを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 に答える