2013-11-03 42 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工作臺但是當我嘗試在我的Java代碼中使用它,我得到這個錯誤

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 

我在做什麼錯?

感謝您的任何幫助。

編輯 Java代碼

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是一個數字,並不需要ticss – 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"; 

IPR.kompetence_odlisujici.active = 1AND kompetence.kompetence_odlisujici_subcategories.id = IPR.kompetence_odlisujici.id_odlisujici_subcategory之間沒有空格aktualniFROM之間沒有空間,和。

另外我的建議是,你在課堂上把這些查詢作爲private static final

+0

謝謝!我沒有注意到有空間丟失!再次感謝你! – Jakolcz

+1

不客氣。你不是唯一有這個問題的人:D – m0skit0