看看在JavaDocs for Statement#execute(String)
返回:
true
如果第一個結果是ResultSet
對象; false
如果 是更新計數或者不存在任何結果
你可以使用Statement#executeQuery(String)
將返回一個ResultSet
,從中你一定要去檢查的第一行
喜歡的東西的結果。 ...
try (Statement stmt = con.createStatement()) {
try (ResultSet rs = stmt.executeQuery("select exists(select 1 from calcul where to_char(date, 'YYYY-MM')=to_char("+dates+", 'YYYY-MM') AND idproduit="+codeP+" AND ppa="+PPA+" AND tr="+TR+" AND net="+NET+" AND dateper='"+datePer+"')")) {
if (rs.next()) {
boolean exists = rs.getBoolean(1);
}
}
} catch (SQLException exp) {
exp.printStackTrace();
}
例如。
話雖如此,我會強烈建議您使用PreparedStatement
,看到Using Prepared Statements更多細節
例如...
try (PreparedStatement stmt = con.prepareStatement("select exists(select 1 from calcul where to_char(date, 'YYYY-MM')=to_char(?, 'YYYY-MM') AND idproduit=? AND ppa=? AND tr=? AND net=? AND dateper='?')")) {
stmt.setString(1, dates);
stmt.setString(2, codeP);
stmt.setString(3, PPA);
stmt.setString(4, TR);
stmt.setString(5, NET);
stmt.setString(6, datePer);
try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
boolean exists = rs.getBoolean(1);
}
}
} catch (SQLException exp) {
exp.printStackTrace();
}
的'='的標誌是分配標誌,而'=='是一個比較符號。 –
請使用'PreparedStatement',不要像這樣連接SQL查詢。您還需要使用'executeQuery()',如JavaDocs中清楚記錄的那樣 –