2013-06-10 4 views
0

Привет у меня есть это управляемый компонент, где он делает запросы MySQL, проблема здесь является SQL оператор делает «=» условие вместо «LIKE»SQL ИНЕКЕ, как в JSF управляемых бинов

Вот код в мой управляемый боб.

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, но если я ввести целое значение, например, как полное число (53544) вместо 53 тогда результат подтягивается. Я запутался !!

Также, если я заменил вышеуказанный оператор select на SELECT * FROM Clients, вся база данных хранится в списке. Есть идеи ?

ответ

1

Используйте подстановочные:

Like '%53%' 

... означает, что все, что содержит '53'.

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

Вы также можете использовать _, если хотите заменить один символ.

Вы можете найти descriptipn HERE

+0

Я совершенно забыл о% !! Благодаря ! что сделал трюк ... глупо меня ... –

1

Вы SQL запрос должен быть

"SELECT * FROM Clients WHERE Machine LIKE '%53%'