Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package OefeningB;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.Statement;
- import javax.swing.table.AbstractTableModel;
- @SuppressWarnings("serial")
- public class TableModel extends AbstractTableModel {
- private Connection connection;
- private Statement statement;
- private ResultSet resultSet;
- private ResultSetMetaData metaData;
- private int numberOfRows;
- private String query;
- private boolean connectedToDatabase = false;
- public TableModel(String driver, String url, String username, String password, String query) throws SQLException, ClassNotFoundException
- {
- Class.forName(driver);
- connection = DriverManager.getConnection(url, username, password);
- statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
- connectedToDatabase = true;
- setQuery(query);
- }
- public Class getColumnClass(int column) throws IllegalStateException {
- if(!connectedToDatabase)
- throw new IllegalStateException("Not Connected to Database");
- try {
- String className = metaData.getColumnClassName(column + 1);
- return Class.forName(className);
- } catch (Exception exc) {
- exc.printStackTrace();
- }
- return Object.class;
- }
- public int getColumnCount() throws IllegalStateException {
- if (!connectedToDatabase)
- throw new IllegalStateException("Not connected to Database");
- try {
- return metaData.getColumnCount();
- } catch (SQLException sqle) {
- sqle.printStackTrace();
- }
- return 0;
- }
- public String getColumnName(int column) throws IllegalStateException {
- if (!connectedToDatabase)
- throw new IllegalStateException("Not connected to Database");
- try {
- return metaData.getColumnName(column + 1);
- } catch (SQLException sqle) {
- sqle.printStackTrace();
- }
- return "";
- }
- public int getRowCount() throws IllegalStateException {
- if (!connectedToDatabase)
- throw new IllegalStateException("Not connected to Database");
- return numberOfRows;
- }
- public Object getValueAt(int row, int column) throws IllegalStateException {
- if (!connectedToDatabase)
- throw new IllegalStateException("Not connected to Database");
- try {
- resultSet.absolute(row + 1);
- return resultSet.getObject(column + 1);
- } catch (SQLException sqle) {
- sqle.printStackTrace();
- }
- return "";
- }
- public void setQuery(String query) throws SQLException, IllegalStateException {
- if (!connectedToDatabase)
- throw new IllegalStateException("Not connected to Database");
- resultSet = statement.executeQuery(query);
- metaData = resultSet.getMetaData();
- resultSet.last();
- numberOfRows = resultSet.getRow();
- fireTableStructureChanged();
- }
- public void disconnectFromDatabase() {
- if (connectedToDatabase) {
- try {
- resultSet.close();
- statement.close();
- connection.close();
- } catch(SQLException sqle) {
- sqle.printStackTrace();
- } finally {
- connectedToDatabase = false;
- }
- }
- }
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- // TODO **EXTRA**
- return super.isCellEditable(rowIndex, columnIndex);
- }
- public void setValueAt(Object value, int rowIndex, int columnIndex) {
- // TODO **EXTRA**
- super.setValueAt(value, rowIndex, columnIndex);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement