xsxx.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.table.*;
class xsxx extends AbstractTableModel
{
Vector ziduan,jilu;
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
public int getRowCount()//获得行的数量,AbstractTableModel抽象类中的一个抽象方法(子类中必须实现),
//返回该模型中的行数。JTable使用此方法来确定它应该显示多少行。
{
return this.jilu.size();
}
public int getColumnCount()//获得列的数量,JTable使用此方法来确定在默认情况下它应该创建并显示多少列。
{
return this.ziduan.size();
}
public Object getValueAt(int hang, int lie)//返回指定行和列对应位置的单元格值。
{
return ((Vector)this.jilu.get(hang)).get(lie);
}
public xsxx()
{
this.sqlyj("select * from Table_3");
}
public xsxx(String ss)
{
this.sqlyj(ss);
}
public String getColumnName(int e)//返回 e 位置的列的名称.
{
return (String)this.ziduan.get(e);
}
public void sqlyj(String sql)
{
ziduan=new Vector();
ziduan.add("学号");
ziduan.add("姓名");
ziduan.add("性别");
ziduan.add("年龄");
jilu=new Vector();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:odbc:sql server");
ps=ct.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next())
{
Vector hang=new Vector();
hang.add(rs.getString(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getString(4));
jilu.add(hang);
}
} catch (Exception e){}
finally
{
try {
if(rs!=null)
{
rs.close();
}
if(ps!=null)
{
ps.close();
}
if(ct!=null)
{
ct.close();
}
} catch (Exception e){}
}
}
}