import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Rectangle;
import java.sql.*;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JFrame;public class XianShiSJ { public JTable player;
public JScrollPane jsplayer;
public JTable style;
public JScrollPane jsstyle;
public JTable play;
public JScrollPane jsplay;
public Connection con;
public Statement statement;
public ResultSet rs1;
public ResultSetMetaData rsmd1;
public ResultSet rs2;
public ResultSetMetaData rsmd2;
public ResultSet rs3;
public ResultSetMetaData rsmd3;
Myyun m=new Myyun(); //url中指定ODBC中设置的DSN名称
public void LJshuju(){
//加载驱动程序以连接数据库
try
{
String url = "jdbc:microsoft:sqlserver://YUNHAI:1433;" +
"DatabaseName_A=运动员;DatabaseName_B=花样跳水;DatabaseName_C=比赛项目";
String username ="sa";
String password ="312147";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection( url, username, password );
Statement statement=con.createStatement();
}
//捕获加载驱动程序异常
catch(ClassNotFoundException e)
{
e.printStackTrace();
System.exit(0);
}
catch(SQLException e){
e.printStackTrace();
System.exit(0);
}
}
public void Xianshi(ResultSet rs ,ResultSetMetaData rsmd,JTable jtable,JScrollPane js,int y,int height)
throws SQLException
{
boolean moreRecords=rs.next();
if ( !moreRecords ){
return;
}
Vector columnHeads=new Vector();
Vector rows=new Vector();
try {
for
( int i=1; i<=rsmd.getColumnCount(); ++i )
columnHeads.addElement( rsmd.getColumnName(i) );
do
{
rows.addElement( getNextRow( rs, rsmd ) );
}
while ( rs.next() );
jtable=new JTable(rows,columnHeads);
js=new JScrollPane(jtable);
js.setBounds(0, y, 800, height);
m.getJContentPane().add(js,null);
}
catch (SQLException sqlex )
{
sqlex.printStackTrace();
}
}
private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd )
throws SQLException
{
Vector currentRow = new Vector();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
currentRow.addElement( rs.getString( i ) );
//返回一条记录
return currentRow;
}
public void xssj(){
String query1="select * from 运动员";
String query2="select * from 花样跳水";
String query3="select * from 比赛项目";
LJshuju();
try {
ResultSet rs1=statement.executeQuery(query1);
ResultSetMetaData rsmd1=rs1.getMetaData();
ResultSet rs2=statement.executeQuery(query2);
ResultSetMetaData rsmd2=rs2.getMetaData();
ResultSet rs3=statement.executeQuery(query3);
ResultSetMetaData rsmd3=rs3.getMetaData();
Xianshi( rs1, rsmd1,player,jsplayer,25,140);
getNextRow( rs1, rsmd1);
Xianshi( rs2, rsmd2,style,jsstyle,185,100);
getNextRow( rs2, rsmd2);
Xianshi( rs3, rsmd3,play,jsplay,300,120);
getNextRow( rs3, rsmd3);
}
catch(SQLException sqlex)
{ sqlex.printStackTrace();
}
}
}
下面是我用visual editor 开发的图形界面和主程序的代码public void actionPerformed(ActionEvent event){
String Lable=event.getActionCommand();
if (Lable.equals("打开赛季数据文件"));
{
XianShiSJ xianshisj=new XianShiSJ();
xianshisj.xssj();
}
}
public static void main(String[] args){
Myyun my=new Myyun();
my.setVisible(true);
my.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);
}
}
由于太长
我只能发其中的一部分,其余的部分都是界面代码,太长了
发不了
请原谅请大家帮我看看
谢谢!!!!
运行的时候
在点采单的"打开数据库文件"时老出现
NullPointerException 错误
不知怎么回事