2 wang2679958237 wang2679958237 于 2016.01.16 22:56 提问

java界面里怎么将从数据库中按条件查询的结果显示在界面里。。急求

AirSelectpage.java:
import javax.swing.*;

import java.awt.event.*;
import java.sql.*;
public class AirSelectpage extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = -3695058594377827316L;
JLabel l;
JTextField t=new JTextField(15);
JButton jok;
JButton jBack;

String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:sqlserver://localhost:1433; DatabaseName=AirTicket";
String USER="sa";
String PASSWORD="123";
public void asPage(){
    JPanel p;
    p=new JPanel();
    l=new JLabel("请输入航班号:");
    jok=new JButton("确认");
    jBack=new JButton("返回");
    p.add(l);p.add(t);p.add(jok);p.add(jBack);
    add(p);
    setSize(600,400);
    setLocation(400,200);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    jok.addActionListener(this);
    jBack.addActionListener(this);
}
private Connection con;
private Statement stmt;
private ResultSet rs;
public void actionPerformed(ActionEvent e){
    if(e.getSource()==jok){
        String airnumber=t.getText().trim();
        if(airnumber.equals("")){
            JOptionPane.showMessageDialog(this,"对不起,请输入航班号!","错误!",JOptionPane.ERROR_MESSAGE);
        }
        else{
            try{
                Class.forName(driverName);
                con=DriverManager.getConnection(url,USER,PASSWORD);
                String sql="select 旅客.航班号,座位号,姓名,旅客.票号,票价,起点,终点,起飞时间,到达时间 from 旅客,航班,机票 where 航班.航班号=旅客.航班号 and 旅客.票号=机票.票号 and 旅客.航班号='"+airnumber+"'";//执行的sql语句
                stmt=con.createStatement();
                rs=stmt.executeQuery(sql);
                if(rs.next()){
                        new AirInformation();                   }
                else{
                    JOptionPane.showMessageDialog(this,"航班号不存在,请重新输入!","错误!",JOptionPane.ERROR_MESSAGE);
                }
            }
            catch(ClassNotFoundException ex){
                ex.printStackTrace();
            }
            catch(SQLException ex){
                ex.printStackTrace();
            }
        }
    }
    if(e.getSource()==jBack){
        Welpage wel=new Welpage();
        wel.wPage(null);
        this.dispose();
    }
}

}

AirInformation.java:
import javax.swing.*;

import java.sql.*;
public class AirInformation extends JFrame{
/**
*
*/
private static final long serialVersionUID = -2888751890568230979L;
// 定义组件
private JScrollPane scpDemo;
private JTable tabDemo;
// 构造方法
public AirInformation() throws SQLException{
// 窗体的相关属性的定义
super("JTable数据绑定示例");
this.setSize(1200,900);
this.setLayout(null);
this.setLocation(100,50);
// 创建组件
this.scpDemo = new JScrollPane();
this.scpDemo.setBounds(10,50,1050,300);
// 将组件加入到窗体中
add(this.scpDemo);
// 显示窗体
this.setVisible(true);
try{
// 获得连接
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}
catch(Exception e){}
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=AirTicket","sa","123");
// 建立查询条件
String sql = "select 旅客.航班号,座位号,姓名,旅客.票号,票价,起点,终点,起飞时间,到达时间 from 旅客,航班,机票 where 航班.航班号=旅客.航班号 and 旅客.票号=机票.票号 and 旅客.航班号='A3001'";
PreparedStatement pstm = conn.prepareStatement(sql);
// 执行查询
ResultSet rs = pstm.executeQuery();
// 计算有多少条记录
int count = 0;
while(rs.next()){
count++;
}
rs=pstm.executeQuery();
// 将查询获得的记录数据,转换成适合生成JTable的数据形式
Object[][] info = new Object[count][9];
count = 0;
while(rs.next()){
info[count][0] = rs.getString("航班号");
info[count][1] = rs.getString("座位号");
info[count][2] = rs.getString("姓名");
info[count][3] = rs.getString("票号");
info[count][4] = Integer.valueOf(rs.getInt("票价"));
info[count][5] = rs.getString("起点");
info[count][6] = rs.getString("终点");
info[count][7] = rs.getTimestamp("起飞时间");
info[count][8] = rs.getTimestamp("到达时间");
count++;
}
// 定义表头
String[] title = {"航班号","座位号","姓名","票号","票价","起点","终点","起飞时间","到达时间"};
// 创建JTable
this.tabDemo = new JTable(info,title);
this.tabDemo.getTableHeader();
// 将JTable加入到带滚动条的面板中
this.scpDemo.getViewport().add(tabDemo);
}
}

当航班号为A3001  A3002。。。时,是可以显示出来的
当航班号为t.getText()时,就一片空白,什么都显示不了

5个回答

caozhy
caozhy   Ds   Rxr 2016.01.16 23:01

下断点,调试String airnumber=t.getText().trim();是什么

wang2679958237
wang2679958237   2016.01.16 23:00

当航班号为A3001时
当航班号为文本框数据时

enpterexpress
enpterexpress   Rxr 2016.01.16 23:05

sql语句条件写出来

KKLiuZ
KKLiuZ   2016.01.17 11:02

直接把t里面的值打印出来就晓得是什么问题了。

Royal_lr
Royal_lr   Ds   Rxr 2016.01.17 20:29

按条件查询,,肯定要将条件传到后台去

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
jsp+MYSQL编写的按条件查询代码
本资源可以实现JSP数据库的链接 可以实现按条件查询数据库
Java中带条件的查询
使用的查询页面能设置复杂的查询条件。其基本原理是把查询条件转化为对应的WHERE子句,然后使用包含该WHERE子句的SQL查询数据库。下面使用tb_person表进行复杂的查询为例: searchPerson.jsp<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %> <%@ p
swing中把数据库的数据显示在界面表格中
private JFrame J; private DefaultTableModel model; private JTable table; Hangban() throws ClassNotFoundException ,SQLException{ J = new JFrame(); J.setTitle("航班信息"); J.setDefaultCloseOpera
java 按条件查询
按条件查询      按条件查询分为几个步骤:        1.从页面上获取查询条件        2.将查询条件传到后台相应的方法中去        3.将这些查询条件全部放在一个map中        4.写sql语句进行查询并把结果返回给前端页面上去展示 比较关键的就是sql语句的书写,将所有的条件都列出,如果为空则不要,不为空在带入查询,举例:    SE
java实现至少输入一个条件的数据库查询
昨天在编写java连接数据库实现书目管理的作业时,学习到了一个很巧妙的方法 可以很简单的实现 **至少输入一个条件的** 查询 代码如下if (!BookNameText.getText().equals("") || !BookPressText.getText().equals("") || !BookAuthorText.getText().equals
java调用C的动态链接库
经过网上查找的资料和实践,可以在java界面中点击按钮调用C的程序将结果显示到java的文本框中,里面有代码和步骤,祝你成功~~
QT,其他类中计算出的结果如何在ui界面的控件中显示?
QT,其他类中计算出的结果如何在ui界面的控件中显示?大体要求是这个样子的,我在一个类中执行了其他类中的一个函数,得到一串数据,那么我怎么将这串数据通过组合在mainwindow中用ui->这种方式将数据赋值给控件呢? 我在网上搜索了好多结果,今天整理一下,和大家分享,网上网友说到,ui->给控件赋值,只能在mainwindow这个类中操作,至于将ui->这个放到别的类中不建议,
java算法,从txt文件中读取数据录入mysql
读取一个文件加下的txt文件,读取文件中内容,自动录入数据库
JavaEE根据不同查询条件进行查找
根据前端页面选择的不同查询条件进行查找 - 将所需要的查询条件传给响应的Servlet,进行判断,根据条件进行SQL语句的拼接... Connection con = null; PrapaerStatement st = null; ResultSet rs = null; ...public void query(String username,int id,String content){
java设置界面显示在屏幕中间
Toolkit toolkit = Toolkit.getDefaultToolkit();Dimension screen = toolkit.getScreenSize();x = (screen.width – this.getWidth()) / 2;y = (screen.height – this.getHeight() – 20) / 2;