Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 794|回复: 0

java中查询数据库后怎么用一个表格显示出来。

[复制链接]

该用户从未签到

发表于 2014-5-1 14:09:35 | 显示全部楼层 |阅读模式
在做一个关于噪声标准的查询,通过输入分贝值,按查询按钮后能够自动查找数据库的数据,并希望它显示在表格上,但是结果是查询后没有数据。查询前的界面,以下是程序,望高手给下指导。
/*按成绩查询数据*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
public class noises extends JFrame implements ActionListener
{
        private String dbURL = "jdbcdbc:SS";
        private String user = "";
        private String password = "";
       
    JLabel labScore=new JLabel("请输入分贝值:");
    JTextField txtScore=new JTextField(10);
    JButton btnQuery=new JButton("查询");
    JButton btnCancel=new JButton("取消");
    JPanel pan1=new JPanel();
    JPanel pan2=new JPanel();
    String []str={"类别","昼间","夜间","适用区域"};
    Object[][] data=new Object[10][4];
    JTable table=new JTable(data,str);
    JTableHeader head=table.getTableHeader();
    JScrollPane jsp=new JScrollPane(table);                //滚动
    Connection con;
    Statement sql;
    ResultSet rs;
    noises()
    {
        super("噪声标准查询");
        setSize(400,300);
        pan2.setLayout(new BorderLayout());
        pan2.add(head,"North");                        //将表头放在面板1的顶部
        pan2.add(jsp,"Center");                        //表格放在pan1中间       
        getContentPane().add(pan2,"Center");//把面板1整体加入到主窗口中

                pan1.add(labScore);
        pan1.add(txtScore);
        pan1.add(btnQuery);//以上4条在第一个面板加入内容\
        pan1.add(btnCancel);
        getContentPane().add(pan1,"North");//把面板2放到窗口顶部
        btnQuery.addActionListener(this);
        btnCancel.addActionListener(this);//增加查询按钮的监视器
        setVisible(true);
    }
    public void actionPerformed(ActionEvent ae){
            if(ae.getSource()==btnCancel){
                    this.dispose();
            }
            else if(ae.getSource()==btnQuery){
            int i,j,row;
            try{
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
            catch(ClassNotFoundException e){   
            }
            try{  
                    con = DriverManager.getConnection(dbURL,user,password);
                   
                sql=con.createStatement();
                rs=sql.executeQuery("select COUNT(*) as rowcount from norm where 昼间="+txtScore.getText());                   //寻找相同成绩的行数
                rs.next();                                                                                //去掉头
                row=rs.getInt("rowcount");                                       
                rs.close();
                data=new Object[row][3];
                rs=sql.executeQuery("select * from norm where 昼间="+txtScore.getText());
                i=0;j=0;
                while(rs.next()){
                    data[i][j++]=rs.getString("类别");
                    data[i][j]=new Integer(rs.getInt("昼间"));//将数据库中查询到的信息保存到data中
                    data[i][j++]=rs.getDate("夜间");
                    data[i][j++]=rs.getDate("适用区域");

                    i++;j=0;
                }
                pan2.removeAll();
                getContentPane().remove(pan2);
                table=new JTable(data,str);
                pan2.setLayout(new BorderLayout());
                head=table.getTableHeader();
                jsp=new JScrollPane(table);
                pan2.add(head,"North");
                pan2.add(jsp,"Center");
                getContentPane().add(pan2,"Center");
                this.validate();
                con.close();
            }catch(SQLException e){
            }
        }
    }
    public static void main(String[] args) {
        new noises();
    }
}

本帖子中包含更多资源

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

x
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2014-5-4 15:55:57 | 显示全部楼层
自己解决了问题,发代码让各位帮忙指导下错误,测试完可以使用。
/*按昼间查询数据*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
public class noises extends JFrame implements ActionListener
{
        private String dbURL = "jdbcdbc:SS";
        private String user = "";
        private String password = "";
       
    JLabel labScore=new JLabel("请输入分贝值:");
    JTextField txtScore=new JTextField(10);
    JButton btnQuery=new JButton("查询");
    JButton btnCancel=new JButton("取消");
    JPanel pan1=new JPanel();
    JPanel pan2=new JPanel();
    String []str={"类别","昼间","夜间","适用区域"};
    Object[][] data=new Object[4][4];
    JTable table=new JTable(data,str);
    JTableHeader head=table.getTableHeader();
    JScrollPane jsp=new JScrollPane(table);//滚动
    Connection con;
    Statement sql;
    ResultSet rs;
    noises()
    {
        super("噪声标准查询");
        setSize(400,300);
        pan2.setLayout(new BorderLayout());
        pan2.add(head,"North");                        //将表头放在面板1的顶部
        pan2.add(jsp,"Center");                        //表格放在pan1中间       
        getContentPane().add(pan2,"Center");//把面板1整体加入到主窗口中
        
                pan1.add(labScore);
        pan1.add(txtScore);
        pan1.add(btnQuery);//以上4条在第一个面板加入内容\
        pan1.add(btnCancel);
        getContentPane().add(pan1,"North");//把面板2放到窗口顶部
        btnQuery.addActionListener(this);
        btnCancel.addActionListener(this);//增加查询按钮的监视器
        setVisible(true);
    }
    public void actionPerformed(ActionEvent ae){
            if(ae.getSource()==btnCancel){
                    this.dispose();
            }
            else if(ae.getSource()==btnQuery){
            try        {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                        con = DriverManager.getConnection(dbURL,user,password);
                        String sqlStr="select * from norm where 昼间="+txtScore.getText();//SQL查询语句
                        Statement st=con.createStatement(); //获取Statement对象
                        ResultSet rs=st.executeQuery(sqlStr); //执行查询
                        String 类别,昼间,夜间,适用区域; //查询结果
                        int i=0;
                        int j=0;
                        while (rs.next()){ //遍历ResultSet
                                data[i][0]=rs.getString("类别"); //获取数据
                                data[i][1]=rs.getString("昼间");
                                data[i][2]=rs.getString("夜间");
                                data[i][3]=rs.getString("适用区域");
                               
                                //System.out.println(data[i][j]); //在控制台输出数据
                                i++;
                                j++;
                        }       
                        table=new JTable(data,str);               
                        pan2.setLayout(new BorderLayout());
                        head=table.getTableHeader();
                        jsp=new JScrollPane(table);
                        pan2.add(head,"North");
                        pan2.add(jsp,"Center");
                        getContentPane().add(pan2,"Center");
                        this.validate();
                       
                        con.close(); //关闭连接
                }
                catch(Exception ex){
                        ex.printStackTrace(); //输出出错信息
        }
        }
}
    public static void main(String[] args) {
        new noises();
   }

}
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2014-5-4 15:56:25 | 显示全部楼层
自己解决了问题,发代码让各位帮忙指导下错误,测试完可以使用。
/*按昼间查询数据*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
public class noises extends JFrame implements ActionListener
{
        private String dbURL = "jdbcdbc:SS";
        private String user = "";
        private String password = "";
       
    JLabel labScore=new JLabel("请输入分贝值:");
    JTextField txtScore=new JTextField(10);
    JButton btnQuery=new JButton("查询");
    JButton btnCancel=new JButton("取消");
    JPanel pan1=new JPanel();
    JPanel pan2=new JPanel();
    String []str={"类别","昼间","夜间","适用区域"};
    Object[][] data=new Object[4][4];
    JTable table=new JTable(data,str);
    JTableHeader head=table.getTableHeader();
    JScrollPane jsp=new JScrollPane(table);//滚动
    Connection con;
    Statement sql;
    ResultSet rs;
    noises()
    {
        super("噪声标准查询");
        setSize(400,300);
        pan2.setLayout(new BorderLayout());
        pan2.add(head,"North");                        //将表头放在面板1的顶部
        pan2.add(jsp,"Center");                        //表格放在pan1中间       
        getContentPane().add(pan2,"Center");//把面板1整体加入到主窗口中
        
                pan1.add(labScore);
        pan1.add(txtScore);
        pan1.add(btnQuery);//以上4条在第一个面板加入内容\
        pan1.add(btnCancel);
        getContentPane().add(pan1,"North");//把面板2放到窗口顶部
        btnQuery.addActionListener(this);
        btnCancel.addActionListener(this);//增加查询按钮的监视器
        setVisible(true);
    }
    public void actionPerformed(ActionEvent ae){
            if(ae.getSource()==btnCancel){
                    this.dispose();
            }
            else if(ae.getSource()==btnQuery){
            try        {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                        con = DriverManager.getConnection(dbURL,user,password);
                        String sqlStr="select * from norm where 昼间="+txtScore.getText();//SQL查询语句
                        Statement st=con.createStatement(); //获取Statement对象
                        ResultSet rs=st.executeQuery(sqlStr); //执行查询
                        String 类别,昼间,夜间,适用区域; //查询结果
                        int i=0;
                        int j=0;
                        while (rs.next()){ //遍历ResultSet
                                data[i][0]=rs.getString("类别"); //获取数据
                                data[i][1]=rs.getString("昼间");
                                data[i][2]=rs.getString("夜间");
                                data[i][3]=rs.getString("适用区域");
                               
                                //System.out.println(data[i][j]); //在控制台输出数据
                                i++;
                                j++;
                        }       
                        table=new JTable(data,str);               
                        pan2.setLayout(new BorderLayout());
                        head=table.getTableHeader();
                        jsp=new JScrollPane(table);
                        pan2.add(head,"North");
                        pan2.add(jsp,"Center");
                        getContentPane().add(pan2,"Center");
                        this.validate();
                       
                        con.close(); //关闭连接
                }
                catch(Exception ex){
                        ex.printStackTrace(); //输出出错信息
        }
        }
}
    public static void main(String[] args) {
        new noises();
   }

}
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-23 02:12 , Processed in 0.360983 second(s), 50 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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