鱼C论坛

 找回密码
 立即注册
查看: 920|回复: 3

[已解决]救命,小组作业一个人当牛马,java和MySQL做宿舍管理,不知道怎么显示数据库的表

[复制链接]
发表于 2023-2-24 20:12:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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);
   
}
       
        }
最佳答案
2023-5-14 17:50:22
根据您提供的代码,可以看出这是一个Java程序,并且使用了MySQL数据库。在这个程序中,它首先通过PreparedStatement发送动态的SQL语句到MySQL,并且使用executeQuery()方法来获得ResultSet对象,接着将ResultSet对象里面的数据逐行存入rowData向量。最后,利用rowData和columnNames向量创建JTable表格。

因此,要显示MySQL表格,需要保证以下条件:
1. 使用正确的用户名和密码连接MySQL;
2. 使用合适的SQL语句查询MySQL表格;
3. 确保MySQL表格的列数量和类型与定义的rowData和columnNames向量一致;

如需进一步帮助,请提供更多详细信息或代码片段。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-2-24 20:13:26 | 显示全部楼层
csdn翻烂了,登录界面进去之后不知道怎么显示数据,执行也不报错,数据库连接也没有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-24 20:15:03 | 显示全部楼层
又一次纯纯感受到这B学都是自己自学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2023-5-14 17:50:22 | 显示全部楼层    本楼为最佳答案   
根据您提供的代码,可以看出这是一个Java程序,并且使用了MySQL数据库。在这个程序中,它首先通过PreparedStatement发送动态的SQL语句到MySQL,并且使用executeQuery()方法来获得ResultSet对象,接着将ResultSet对象里面的数据逐行存入rowData向量。最后,利用rowData和columnNames向量创建JTable表格。

因此,要显示MySQL表格,需要保证以下条件:
1. 使用正确的用户名和密码连接MySQL;
2. 使用合适的SQL语句查询MySQL表格;
3. 确保MySQL表格的列数量和类型与定义的rowData和columnNames向量一致;

如需进一步帮助,请提供更多详细信息或代码片段。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 02:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表