2015-04-07 7 views
0

Я работаю над проектом базы данных с 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); 
    } 
} 

Это мои вспомогательные методы. Я не могу найти проблему.

+2

Не полагайтесь на имя столбца, имеющее воинственное имя 'count (*)'. Вместо этого переименуйте что-нибудь вдоль строки 'SELECT count (*) AS cnt FROM PERSONEL WHERE P_TC =?', А затем используйте 'r.getInt (" cnt ")'. И точка с запятой в конце инструкции не требуется. – Tiny

+0

Что делает 'baglan()' do? – articuno

ответ

0

вместо deger = r.getInt("count(*)"); попробовать deger = r.getInt(0);

0

Вы могли бы дать Выражение колонке имя собственное.

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

или просто использовать индекс:

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

также закрыть РС в целом. И конечная точка с запятой не нужна.

Смежные вопросы