2013-11-03 2 views
0

에서 작동하지 않습니다 나는이 MySQL의 쿼리를MySQL은 SELECT는 JDBC

SELECT 
    kompetence.kompetence_odlisujici_subcategories.nazev as odlisujici_nazev, 
    tolerovana, 
    zadana, 
    aktualni 
FROM kompetence_odlisujici, kompetence.kompetence_odlisujici_subcategories 
WHERE kompetence_odlisujici.os_cislo_zamestnanec = ? 
AND tolerovana <> 0 
AND zadana <> 0 
AND aktualni <> 0 
AND year = ? 
AND IPR.kompetence_odlisujici.active = 1 
AND kompetence.kompetence_odlisujici_subcategories.id = PR.kompetence_odlisujici.id_odlisujici_subcategory 

을 가지고 있고 그것은 내가 MySQL의 워크 벤치에서 그것을 시도하는 경우 잘 작동하지만 난 내 자바 코드에서 사용하려고 할 때이 오류가

SQLException :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE kompetence_odlisujici.os_cislo_zamestnanec = '123456' AND tolerovana <> 0 ' at line 1 

내가 뭘 잘못하고 있니?

도움 주셔서 감사합니다.

편집 자바 코드

DataSourcePool dspService = sling.getService(DataSourcePool.class); 
DataSource dsMySql = (DataSource) dspService.getDataSource("myConnection"); 
PreparedStatement preparedStatement = null; 
if(dsMySql != null){ 
String sqlQuery = "SELECT kompetence.kompetence_odlisujici_subcategories.nazev as odlisujici_nazev, tolerovana, zadana, aktualni"+ 
       "FROM IPR.kompetence_odlisujici, kompetence.kompetence_odlisujici_subcategories "+ 
       "WHERE IPR.kompetence_odlisujici.os_cislo_zamestnanec = ? AND tolerovana <> 0 AND zadana <> 0 AND aktualni <> 0 AND year = ? AND IPR.kompetence_odlisujici.active = 1"+ 
       "AND kompetence.kompetence_odlisujici_subcategories.id = IPR.kompetence_odlisujici.id_odlisujici_subcategory"; 
    Connection mySqlConnection = mySqlConnection = dsMySql.getConnection(); 
    preparedStatement = mySqlConnection.prepareStatement(sqlQuery); 
    String workingUser = this.getWorkingUser(); 
    int year = Calendar.getInstance().get(Calendar.YEAR); 
    preparedStatement.setString(1, workingUser); 
    preparedStatement.setInt(2, year); 
    ResultSet resultSet = preparedStatement.executeQuery(); 
    resultSet.last(); 
    int count = resultSet.getRow(); 
    resultSet.beforeFirst(); 
    /* 
    parse result set here 
    */ 
} 
+3

Java 코드를 포함하십시오. –

+0

'FROM ...'줄 끝 부분에 공백 문자 또는 줄 바꿈 문자가 있습니까, 아니면 실제로 모든 줄에 있습니까? – vikingsteve

+0

나에게도 보입니다 os_cislo_zamestnanec은 숫자이고 티크이 필요하지 않습니다 – xQbert

답변

2
String sqlQuery = "SELECT kompetence.kompetence_odlisujici_subcategories.nazev as odlisujici_nazev, tolerovana, zadana, aktualni "+ 
       "FROM IPR.kompetence_odlisujici, kompetence.kompetence_odlisujici_subcategories "+ 
       "WHERE IPR.kompetence_odlisujici.os_cislo_zamestnanec = ? AND tolerovana <> 0 AND zadana <> 0 AND aktualni <> 0 AND year = ? AND IPR.kompetence_odlisujici.active = 1 "+ 
       "AND kompetence.kompetence_odlisujici_subcategories.id = IPR.kompetence_odlisujici.id_odlisujici_subcategory"; 

aktualniFROM 사이에 공간, IPR.kompetence_odlisujici.active = 1AND kompetence.kompetence_odlisujici_subcategories.id = IPR.kompetence_odlisujici.id_odlisujici_subcategory 사이에 공간.

또한이 쿼리를 클래스에 private static final으로 지정하는 것이 좋습니다.

+0

감사합니다. 나는 공간이 없다는 것을 알아 채지 못했습니다! 다시 감사합니다! – Jakolcz

+1

반갑습니다. 당신은이 문제가있는 유일한 사람이 아닙니다 : D – m0skit0