2017-03-23 7 views
0

코드와 쿼리 오라클 때 예외를 얻기 :는 Dbutils

QueryRunner queryRunner = new QueryRunner(); 
connection = JdbcUtils.getConnection(); 
String sql = "SELECT id,name,address,phone FROM customer WHERE name LIKE ?"; 
List<Customer> list = queryRunner.query(connection,sql,new BeanListHandler<Customer>(Customer.class), "%j%"); 
for(Customer c: list){ 
    System.out.println(c); 
} 

난 내 자신의 DAO 코드로 쿼리가 queryRunner와 OK.But있어, 다음과 같은 예외가 나타납니다

java.sql.SQLException: ORA-00904: "NAMEIKE": invalid identifier 
Query: SELECT id,name,address,phone FROM customer WHERE name LIKE ? Parameters: [%j%] 
at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392) 
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:351) 
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:212) 
at com.lteagle.mvcapp.test.Test.main(Test.java:19) 

내가 돈 ' 잘못된 식별자 "NAMEIKE"의 출처를 알 수 없습니다. 이 ..What를 시도 할 수

답변

0

는 J, 당신이 퍼지 쿼리에 내가 원하는 쿼리 주자

QueryRunner queryRunner = new QueryRunner(); 
connection = JdbcUtils.getConnection(); 
String sql = "SELECT id,name,address,phone FROM customer WHERE name LIKE ?"; 
List<Customer> list = queryRunner.query(connection,sql,new BeanListHandler<Customer>(Customer.class), "%"+j+"%"); 
for(Customer c: list){ 
    System.out.println(c); 
} 
+0

의 방법을 쿼리 전달하는 매개 변수입니다, 'J'는 '이름'에 불과 문자입니다. – lteagle