📄 databaseviewer.java~4~
字号:
package manager;
import com.sun.rowset.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.sql.rowset.*;
class ResultSetFrame extends JFrame
{
public ResultSetFrame()
{
super("ResultSet");
setSize(600,400);
setLocation(250, 250);
tableNames=new JComboBox() ;
tableNames.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
if(scrollPane!=null) remove(scrollPane);
String tableName=(String)tableNames.getSelectedItem();
if(rs!=null) rs.close();
String query="SELECT * FROM "+tableName;
rs=stat.executeQuery(query);
if(scrolling) model=new ResultSetTableModel(rs);
else {
CachedRowSet crs=new CachedRowSetImpl();
crs.populate(rs);
model=new ResultSetTableModel(crs) ;
}
JTable table=new JTable(model) ;
scrollPane=new JScrollPane(table) ;
add(scrollPane,BorderLayout.CENTER);
validate();
}
catch(SQLException ee){}
}
});
JPanel panel=new JPanel() ;
panel.add(tableNames) ;
add(panel,BorderLayout.NORTH);
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException ce){ce.printStackTrace();}
try{
con=DriverManager.getConnection(
"jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=order.mdb");
DatabaseMetaData meta=con.getMetaData();
if(meta.supportsResultSetType(ResultSet.TYPE_SCROLL_INSENSITIVE))
{
scrolling=true;
stat=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
}
else
{
stat=con.createStatement() ;
scrolling=false;
}
ResultSet tables=meta.getTables(null,null,null,new String[]{"TABLE"}) ;
while(tables.next())
tableNames.addItem(tables.getString(3));
tables.close();
}
catch(SQLException sqlE){}
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
try{
if(con!=null) con.close();
}
catch(SQLException sqle){}
}
});
}
private JScrollPane scrollPane;
private ResultSetTableModel model;
private JComboBox tableNames;
private ResultSet rs;
private Connection con;
private Statement stat;
private boolean scrolling;
}
class ResultSetTableModel extends AbstractTableModel
{
public ResultSetTableModel(ResultSet aResult)
{
rs=aResult;
try{
rsmd=rs.getMetaData();
}
catch(SQLException e){}
}
public String getColumnName(int c)
{
try{
return rsmd.getColumnName(c+1);
}
catch(SQLException e)
{
return "";
}
}
public int getColumnCount()
{
try{
return rsmd.getColumnCount();
}
catch(SQLException e)
{
return 0;
}
}
public Object getValueAt(int r,int c)
{
try{
rs.absolute(r+1);
return rs.getObject(c+1);
}
catch(SQLException e)
{
return null;
}
}
public int getRowCount()
{
try{
rs.last();
return rs.getRow();
}
catch(SQLException e)
{
return 0;
}
}
private ResultSet rs;
private ResultSetMetaData rsmd;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -