我正在使用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