我可以使用Java将数据插入到我的数据库中,但无法选择并显示它

时间:2015-04-07 11:38:50

标签: java mysql

我正在使用Java和MYSQL开发数据库项目。我可以从Netbeans连接数据库,我可以插入数据。但我必须达到我的数据并选择sql语句不起作用。

 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);
    }
}

这些是我的助手方法。我找不到问题。

2 个答案:

答案 0 :(得分:0)

而不是deger = r.getInt("count(*)");尝试deger = r.getInt(0);

答案 1 :(得分:0)

您可以为列表达式指定正确的名称。

baglan("SELECT count(*) AS cnt FROM PERSONEL WHERE P_TC=?");
deger = r.getInt("cnt");

或仅使用索引:

deger = r.getInt(1); // Columns counted from 1.

一般也关闭rs。并且不需要终止分号。