我正在使用Java和MYSQL處理數據庫項目。我可以連接來自Netbeans的數據庫,並且可以向其中插入數據。但我必須達到我的數據並選擇sql語句不起作用。我可以使用Java將數據插入到我的數據庫,但無法選擇並顯示它
public int TCSorgu(String sifre) {
int deger=100;
baglan("SELECT count(*) FROM PERSONEL WHERE P_TC=?;");
addPS(1, sifre);
r = calistir();
try {
r.next();
deger = r.getInt("count(*)");
System.out.println(deger);
} catch (SQLException ex) {
Logger.getLogger(DAO_sorgu.class.getName()).log(Level.SEVERE, null, ex);
}
baglantiyiKes();
if(deger==1)
return 4;
else
return 2;
}
這是我的代碼,我嘗試從數據庫中「選擇」。我可以從Mysql獲取數據,因此插入時沒有問題。然而,「COUNT(*)」部分給出了0的結果是,當我運行MYSQL它返回1
public void addPS(int index, String s){
//System.out.println(index+s+"\n");
if(ps != null){
try {
ps.setString(index, s);
} catch (SQLException ex) {
Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public ResultSet calistir(){
try {
rs = ps.executeQuery();
} catch (SQLException ex) {
Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
}
return rs;
//ps = null;
}
public synchronized void baglantiyiKes() {
try {
if (con != null) {
con.close();
}
} catch (Exception e) {
System.err.println("baglantiyi kes hatasi : " + e);
}
}
這些都是我的輔助方法相同的查詢。我找不到問題。
不要依賴名稱爲'count(*)'的列名。取而代之的是沿'SELECT count(*)AS cnt FROM PERSONEL WHERE P_TC =?'行重新命名它,然後使用'r.getInt(「cnt」)''。聲明結尾的分號不是必需的。 – Tiny
'baglan()'做了什麼? – articuno