jtabledataset.java

来自「java实现数据库数据浏览工具源码」· Java 代码 · 共 96 行

JAVA
96
字号
package jwin;

import java.sql.*;

import javax.swing.table.AbstractTableModel;

public class JTableDataSet extends AbstractTableModel {
	ResultSet rs;
	 Object[][] values;
	 String[] columnNames;
    int columnCount =-1;
    int rowCount = -1;
	public JTableDataSet(String selectsql, Connection connection) {

		Statement stmt;

		try {
			stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			rs = stmt.executeQuery(selectsql);
			rs.last();
			rowCount = rs.getRow();
			columnCount = rs.getMetaData().getColumnCount();
			rs.beforeFirst();
			values = new Object[rowCount][columnCount];
			columnNames = new String[columnCount];
			while(rs.next()) {
				for (int j = 1; j <= columnCount; j++) {
					//System.out.println("当前记录:"+rs.getRow());
					values[rs.getRow()-1][j-1] =rs.getObject(j);
					columnNames[j-1] = rs.getMetaData().getColumnName(j);
				}
			}


		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			rs = null;
			values = null;
			columnNames = null;
		}
	}

	@Override
	public int getColumnCount() {
		// TODO Auto-generated method stub
		int i = -1;
		if (rs != null) {
			try {
				i = rs.getMetaData().getColumnCount();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return i;
	}

	@Override
	public int getRowCount() {
		// TODO Auto-generated method stub
		int i = -1;

		if (rs != null) {
			try {
				rs.last();
				i = rs.getRow();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return i;
	}

	@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
		// TODO Auto-generated method stub

		return values[rowIndex][columnIndex];
	}

	public String getColumnName(int column) {
		return columnNames[column];
	}

	public ResultSet getRs() {
		return rs;
	}

	public void setRs(ResultSet rs) {
		this.rs = rs;
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?