2017-11-23 4 views
0

데이터베이스에서 정보를 얻기 위해 간단한 스윙 응용 프로그램을 개발 중입니다. 데이터베이스 테이블의 필드 중 두 개가 Used_PR & Create_PR이라고합니다. 다음과 같이, enter image description hereLIKE 절을 사용하여 mysql 데이터베이스에 데이터 삽입

데이터 구조는 다음과 같습니다.

PR-L-Machine-Date-Shift 

그러면 PR로 데이터를 검색하려고합니다. 다음은 검색 세부 정보를 입력 할 수있는 인터페이스입니다. enter image description here

날짜 선택 날짜 JDateChooser. LIKE 절을 사용하여 데이터베이스에서 데이터를 가져 왔지만 작동하지 않습니다. 다음은 MYSQL 쿼리 문입니다.

 String prlQuery = "SELECT * FROM final_report WHERE used_PR LIKE '?%' OR create_PR LIKE '?%'"; 

     try { 
      Date chooseDate = new Date(dateChooser.getDate().getTime()); 
      String parameter = "PR-L-" + selectMachine.getSelectedItem() + "-" + chooseDate; 

      pst = connect.dbConnection().prepareStatement(prlQuery); 
      pst.setString(1, parameter); 
      pst.setString(2, parameter); 

하지만 작동하지 않는 것 같습니다. 누군가이 코드 구조로 나를 도울 수 있습니까?

+0

시도 같이해야한다 매개 변수에 %를 통과해야 매개 변수 문자열 작성 도구의 끝 – Shaiba7

+0

JDateChooser에서 현재 가져 오는 데이터베이스 및 형식에 저장된 날짜의 형식을 확인해야 할 수 있습니다. –

+0

나는 노력했다. 감사합니다 – MD40

답변

1

당신은 "final_report SELECT * FROM WHERE used_PR LIKE? 또는 create_PR LIKE?",과에서 %를 추가하는 쿼리를 변경하려면 쿼리

String prlQuery = "SELECT * FROM final_report WHERE used_PR LIKE ? OR create_PR LIKE ?"; 

    try { 
     Date chooseDate = new Date(dateChooser.getDate().getTime()); 
     String parameter = "PR-L-" + selectMachine.getSelectedItem() + "-" + chooseDate; 

     pst = connect.dbConnection().prepareStatement(prlQuery); 
     pst.setString(1, parameter+"%"); 
     pst.setString(2, parameter+"%"); 
+0

감사합니다 vichu. 이것은 저를 위해 아주 잘 작동합니다. – MD40

+0

행복하게 도와주세요. – vichu

관련 문제