2012-04-17 2 views
0

Я хотел бы выполнить поисковый запрос и показать результаты в JTable. У меня есть JComboBox, где пользователь может выбрать поле для поиска, например имя, возраст, или ID.поисковый запрос и показ результатов в jtable

Это мой код.

try { 
    Class.forName("com.mysql.jdbc.Driver");  
    String connectionUrl = "jdbc:mysql://localhost/db?" + "user=root&password="; 
    con = DriverManager.getConnection(connectionUrl); 
    Statement state = con.createStatement(); 

    ResultSet result = state.executeQuery("SELECT * FROM db.atelier where '" + 
     jComboBox1.getSelectedItem().toString() + "'='" + 
     jTextField1.getText().toString() + "'"); 

    ResultSetMetaData resultMeta = result.getMetaData(); 

    while(result.next()){ 
     model.addRow(new Object[]{result.getObject(1),result.getObject(2)});  
     model.setDataVector(
      new Object[][]{{result.getObject(1),result.getObject(2)},{}},       
      new Object[]{resultMeta.getColumnName(1),resultMeta.getColumnName(2)}); 
     } 

    jPanel1.revalidate(); 
    model.fireTableDataChanged(); 
    this.repaint(); 
    state.close(); 
} 
catch (SQLException e){ 
    System.out.println("SQL Exception: "+ e.toString()); 
} 
catch (ClassNotFoundException cE){ 
    System.out.println("Class Not Found Exception: "+ cE.toString()); 
} 

con=null; 
+1

В чем вопрос? – ControlAltDel

+1

Пожалуйста, используйте последовательный и логический отступ для кодовых блоков. –

+0

См. Также [Q & A] (http://stackoverflow.com/q/332365/230513) относительно SQL-инъекции. – trashgod

ответ

1

Кстати, способ, которым вы строите свой поисковый запрос, просто покажет ваше приложение SQL-инъекции.

2

Одиночные кавычки в выделенном элементе combobox должны быть удалены, чтобы вместо них были использованы имена полей вместо строковых литералов. Кроме того, PreparedStatement, где текстовое поле задается как дополнительный параметр, заменяющий ? в строке SQL, лучше. Это исключает одинарные кавычки, введенные в текстовое поле (и обратную косую черту и т. Д.).

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