Salve a tutti ragazzi. Sto sviluppando un gestionale da portare in un esame universitario e sia io che il mio collega abbiamo alcuni problemi nell'implementare specifiche funzioni.
Mentre lancio il programma mi connetto ad un db di mysql server con un utente senza password che ha il solo attributo di select. Ho una tabbed pane che al click mi cambia la mia jtable. Il primo problema è che il mio prof. mi ha consigliato l'uso di sql server in quanto avrei avuto una result set updatable tuttavia il return di
è falso dovrei settare qualcosa?codice:ResultSet.CONCUR_UPDATABLE
La prima implementazione che vorrei fare è la possibilità di aggiungere un elemento direttamente dalla jtable. Quindi ho un pulsante che mi crea una riga null che è completamente vuota. Come faccio a prelevare il testo da questa riga ed eseguire la query per inserirla nel db?
Inserisco il codice della classe Mytabe grazie in anticipo per l'aiuto.
codice:public class MyTable extends JTable { private DefaultTableModel dataModel; public MyTable(Gui gui) { super(); dataModel = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int column) { return gui.isAdmin(); } }; setModel(dataModel); } public void add(){ dataModel.addRow((Object[]) null); dataModel.fireTableDataChanged(); } public void update(ResultSet resultSet) throws SQLException { clear(); //create an array of column names ResultSetMetaData mdata = resultSet.getMetaData(); int colCount = mdata.getColumnCount(); String[] colNames = new String[colCount]; for (int i = 1; i <= colCount; i++) { colNames[i - 1] = mdata.getColumnName(i); } dataModel.setColumnIdentifiers(colNames); //now populate the data while (resultSet.next()) { Object[] rowData = new Object[colCount]; for (int i = 1; i <= colCount; i++) { switch (mdata.getColumnClassName(i)) { case "java.sql.Date": rowData[i - 1] = resultSet.getDate(i); break; case "java.lang.Integer": rowData[i - 1] = resultSet.getInt(i); break; case "java.lang.Double": rowData[i - 1] = resultSet.getDouble(i); break; default: rowData[i - 1] = resultSet.getString(i); break; } } dataModel.addRow(rowData); } } public void clear(){ dataModel.getDataVector().removeAllElements(); dataModel.fireTableDataChanged(); } }