Witam serdecznie,
mam problem z wyświetlaniem zapytania SQL przypisanego do zmiennej "text" z pola "jTextArea2". Pobrany tekst jest potem obsługiwany przez "jButton5" .
Chciałabym wyświetlać wynik tekstu, który jest przypisany potem do zapytania "sql".
Jeśli wprowadzę np takie zapytanie do pola jTextArea2;
select * from employess
lub
select id, first_name from employess
wyświetli mi prawidłowo, ale jeśli chce wyświetlić np:
select id from employess
lub
select first_name from employess
pojawia mi się błąd "nie poprawny index kolumny". Wiem czemu tak się dzieje , bo mam wypisane, że chce 2 pola wyświetlić a nie 1:
jTextArea3.append("\n"+ rs.getString(1)+"\t"+ rs.getString(2));
Mam ogromna prośbę o uzyskanie jakiejś wskazówki, z jakiej funkcji powinnam skorzystać, aby sprawdzać zmienną "text" i do niej przypisać odpowiednie zapytanie lub jak poprawić, aby wczytało odpowiednie kolumny :
jTextArea3.append("\n"+ rs.getString(1)+"\t"+ rs.getString(2));
Obsługa przycisku przedstawia się poniżej :
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
String driver = "oracle.jdbc.driver.OracleDriver";
String serverName = "localhost";
String portNumber = "1521";
String sid = "XE";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
String pass = "kasia";
String user = "kasia";
String sql = "";
try {
String text = jTextArea2.getText();
jTextArea3.setText(text);
if (text == null ? "" == null : text.equals("")) {
jTextArea3.setText("Please enter some query SQL... ");
} else {
sql=text; // tu czegoś też mi bakuje :( ?
jTextArea3.setText(sql);
}
Class.forName(driver);
Connection con = DriverManager.getConnection(url, user, pass);
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
jTextArea3.append(null);
while (rs.next()) {
jTextArea3.append("\n"+ rs.getString(1)+"\t"+ rs.getString(2)); //tu chyba też mam żle :(
}
ps.close();
con.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}