|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
package 课程设计;
import java.awt.*;
import java.sql.*;
import java.util.Vector;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Stuck {
Vector<Object> columnNames;
private Vector<Vector<Object>> rowData = new Vector<Vector<Object>>();
static JTable table1=null;
//定义数据库需要的全局变量
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;//将对数据库查询的结果保存进resultset的对象rs中
public Stuck(){
columnNames=new Vector<Object>();
//设置列名
columnNames.add("姓名");
columnNames.add("性别");
columnNames.add("学号");
columnNames.add("宿舍号");
columnNames.add("床位");
columnNames.add("学院");
columnNames.add("身份");
columnNames.add("状态");
//rowData可以存放多行,开始从数据库里取
try {
String userMySql="root";
String passwordMySql="123456";
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//得到连接,并获取连接对象ct
ct= DriverManager.getConnection("jdbc:mysql://localhost:3306/stu-sushe",userMySql,passwordMySql);
ps=ct.prepareStatement("select * from student");//向mysql发送动态的sql语句
rs=ps.executeQuery();//使用select语句时用executeQuery执行,executeupdate用于执行insert,update,delete,execute用于返回多个结果集的语句。
while(rs.next()){
//rowData可以存放多行
Vector<Object> hang=new Vector<Object>();
hang.add(rs.getString(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getString(4));
hang.add(rs.getString(5));
hang.add(rs.getString(6));
hang.add(rs.getString(7));
hang.add(rs.getInt(8));
//加入到rowData
rowData.add(hang);
}
} catch (Exception e) {
e.printStackTrace();
//System.out.println(e.getMessage());
} finally{
try {
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(ct!=null){
ct.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
table1=new JTable(rowData,columnNames) {
private static final long serialVersionUID=-3229560868878458304L;
public boolean isCellEditable(int row,int column) {
return false;
}
};
table1.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//只允许选中一行
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();// 设置table内容居中
tcr.setHorizontalAlignment(JLabel.CENTER);// 这句和上句作用一样
table1.setDefaultRenderer(Object.class, tcr);
}
}
根据您提供的代码,可以看出这是一个Java程序,并且使用了MySQL数据库。在这个程序中,它首先通过PreparedStatement发送动态的SQL语句到MySQL,并且使用executeQuery()方法来获得ResultSet对象,接着将ResultSet对象里面的数据逐行存入rowData向量。最后,利用rowData和columnNames向量创建JTable表格。
因此,要显示MySQL表格,需要保证以下条件:
1. 使用正确的用户名和密码连接MySQL;
2. 使用合适的SQL语句查询MySQL表格;
3. 确保MySQL表格的列数量和类型与定义的rowData和columnNames向量一致;
如需进一步帮助,请提供更多详细信息或代码片段。
|
|