Всем привет. Делаю дэскттопное приложение на виндоус 10 на старой библиотеке SWING. Все работает, нормально. Но просто решил спросить, нормально ли это.У меня есть несколько таблиц в MySQL, в одном из JFrame у меня появляются две таблицы на скролах, я ,к примеру ,выбираю из одной таблицы что то , и у меня считывает id этой таблицы и выводит все в JTextArea вот таким вот способом.
отрывок из ДАО:
private PreparedStatement psSelect = null;
private void selectVitPS(String sql) {
if (psSelect != null) {
try {
psSelect = db.getCn().prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public String select(int id) {
ResultSet rs = null;
String s = null;
List<Vitamins> list = new ArrayList<>();
try {
selectVitPS("SELECT * FROM vitamins WHERE id_vitamin =" + id);
rs = psSelect.executeQuery();
while (rs.next()) {
Vitamins v = new Vitamins();
v.setVitamin(rs.getString("vitamin"));
list.add(v);
}
s = list.toString();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (psSelect != null) {
try {
psSelect.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
return s;
}
Отрывок из фрейма : происходит по нажатию на кнопку :
private JTextArea area;
public void action(){
update.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(table1.getSelectedRow() != -1){
DaoVitamins dv = new DaoVitamins();
area.setText(dv.select(Integer.valueOf(String.valueOf(table1.getValueAt(table1.getSelectedRow(), 0)))));
}
if(table2.getSelectedRow() != -1){
DaoDiscriptions dd = new DaoDiscriptions();
area.setText(dv.select(Integer.valueOf(String.valueOf(table2getValueAt(table1.getSelectedRow(), 0)))));
}
все выводит что мне надо, но нормально ли так делать ? нужен совет. Спасибо.
DAO оставил без изменений, изменил метод update.addActionListener(new ActionListener(){} в фрейме, а именно изменил
if(table1.getSelectedRow() != -1){
DaoVitamins dv = new DaoVitamins();
area.setText(dv.select(Integer.valueOf(String.valueOf(table1.getValueAt(table1.getSelectedRow(), 0)))));
}
if(table2.getSelectedRow() != -1){
DaoDiscriptions dd = new DaoDiscriptions();
area.setText(dv.select(Integer.valueOf(String.valueOf(table2getValueAt(table1.getSelectedRow(), 0)))));
}
на
if (table1.getSelectedRow() != -1) {
DaoVitamins dv = new DaoVitamins();
area.append(
dv.select(Integer.valueOf(String.valueOf(table1.getValueAt(table1.getSelectedRow(), 0)))));
area.append("\n");
updateTable();
}
if (table2.getSelectedRow() != -1) {
DaoDiscriptions dd = new DaoDiscriptions();
area.append(
dd.select(Integer.valueOf(String.valueOf(table2.getValueAt(table2.getSelectedRow(), 0)))));
area.append("\n");
updateTable();
}
}
метод updateTable() прпосто обновляет содержимое таблицы.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Здравствуйте! Нужно создать небольшое CMS, только пока не могу понять все аспектыПонимаю что можно создать панель администратора и через него...
Как создать умный опрос, на основании ответа которых будет подставлять следующий нужный вопрос, тем самым в конце опроса человек узнает свою...