程序大意为从数据库中名为tb_student这个表中读取数据,然后用表格的方式显示出来,请高手看一下怎么表格没有出现啊?感觉vec1和vec3里的数据都进去了么?
贴代码:import java.sql.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Vector;public class TestSQLTable{
public static void main(String[] args){
new MyFrameforSQL();
}
}class MyFrameforSQL extends JFrame{ public Vector vec1 = new Vector();
public Vector vec3 = new Vector();
MyFrameforSQL(){
super("Table for SQL");
this.display();
String a1 = "学生号";
String a2 = "姓名";
String a3 = "性别";
String a4 = "出生日期";
String a5 ="班级号";
vec3.addElement(a1);
vec3.addElement(a2);
vec3.addElement(a3);
vec3.addElement(a4);
vec3.addElement(a5);
/*
int v1 = vec1.size();
int i1 = 0;
for(;i1<v1;i1++)
System.out.println(vec1.get(i1).toString());
int v2 = vec2.size();
int i2 = 0;
for(;i2<v2;i2++)
System.out.println(vec2.get(i2).toString());
int v3 = vec3.size();
int i3 = 0;
for(;i3<v3;i3++)
System.out.println(vec3.get(i3).toString());
*/
setVisible(true);
setSize(600,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTable jt = new JTable(vec1,vec3);
jt.setPreferredScrollableViewportSize(new Dimension(400,300));
JScrollPane js = new JScrollPane(jt);
setContentPane(js);
}
public void display(){
Connection con = null;
String url = "jdbc:odbc:tb_student";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url);
Statement st = con.createStatement();
int sno;
String name;
String sex;
Date birthday;
int classname;
ResultSet rs ;
String strsql = "select* from tb_student";
rs = st.executeQuery(strsql);
if(rs.next())
{
do{
Vector vec2 = new Vector();
sno = rs.getInt("SNO");
vec2.add(sno);
name = rs.getString("NAME");
vec2.add(name);
sex = rs.getString("SEX");
vec2.add(sex);
birthday = rs.getDate("BIRTHDAY");
vec2.add(birthday);
classname = rs.getInt("CLASS");
vec2.add(classname);
vec1.add(vec2);
}while(rs.next());
}
else{
System.out.println("没有数据");
}
}catch(ClassNotFoundException e){
System.out.println(e);
}catch(SQLException e){
System.out.println(e);
}finally{
try{
if(con!=null){
con.close();
}
}catch(SQLException e){
System.out.println(e);
}
}
}
}
贴代码:import java.sql.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Vector;public class TestSQLTable{
public static void main(String[] args){
new MyFrameforSQL();
}
}class MyFrameforSQL extends JFrame{ public Vector vec1 = new Vector();
public Vector vec3 = new Vector();
MyFrameforSQL(){
super("Table for SQL");
this.display();
String a1 = "学生号";
String a2 = "姓名";
String a3 = "性别";
String a4 = "出生日期";
String a5 ="班级号";
vec3.addElement(a1);
vec3.addElement(a2);
vec3.addElement(a3);
vec3.addElement(a4);
vec3.addElement(a5);
/*
int v1 = vec1.size();
int i1 = 0;
for(;i1<v1;i1++)
System.out.println(vec1.get(i1).toString());
int v2 = vec2.size();
int i2 = 0;
for(;i2<v2;i2++)
System.out.println(vec2.get(i2).toString());
int v3 = vec3.size();
int i3 = 0;
for(;i3<v3;i3++)
System.out.println(vec3.get(i3).toString());
*/
setVisible(true);
setSize(600,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTable jt = new JTable(vec1,vec3);
jt.setPreferredScrollableViewportSize(new Dimension(400,300));
JScrollPane js = new JScrollPane(jt);
setContentPane(js);
}
public void display(){
Connection con = null;
String url = "jdbc:odbc:tb_student";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url);
Statement st = con.createStatement();
int sno;
String name;
String sex;
Date birthday;
int classname;
ResultSet rs ;
String strsql = "select* from tb_student";
rs = st.executeQuery(strsql);
if(rs.next())
{
do{
Vector vec2 = new Vector();
sno = rs.getInt("SNO");
vec2.add(sno);
name = rs.getString("NAME");
vec2.add(name);
sex = rs.getString("SEX");
vec2.add(sex);
birthday = rs.getDate("BIRTHDAY");
vec2.add(birthday);
classname = rs.getInt("CLASS");
vec2.add(classname);
vec1.add(vec2);
}while(rs.next());
}
else{
System.out.println("没有数据");
}
}catch(ClassNotFoundException e){
System.out.println(e);
}catch(SQLException e){
System.out.println(e);
}finally{
try{
if(con!=null){
con.close();
}
}catch(SQLException e){
System.out.println(e);
}
}
}
}
setSize(600,600);
放到坐在函数的最后。并且颠倒一下顺序。
setSize(600,600);setVisible(true);