java中查询数据库并以表格形式显示

package lib;

/*
 * 查询数据库,通过传递进来的SQL查询语句从数据库中检索信息,并以相应格式显示
 */
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;

import view.QueryDBView;

public class QueryDBBean
{
 static AbstractTableModel tm;
 static JTable jg_table;
 static Vector vect;
 static JScrollPane jsp;
 static String[] title = {"职工号","职工名","性别"};
 
    static ResultSet rs;
    //按照用户指定查询条件返回相应结果,并将结果显示给用户
    public static void action(String sql)
    {
        DBConnector dbc = new DBConnector();
        dbc.getConnection();
        rs = dbc.executeQuery(sql);
     init();
        show();
        dbc.close();
    }
   
    //把从数据库中获取的数据显示出来
    static void show()
    {
     tm.fireTableStructureChanged();
        try
        {
         while(rs.next())
         {
          Vector rec_vector = new Vector();
          rec_vector.addElement(rs.getString(1));
          rec_vector.addElement(rs.getString(2));
          rec_vector.addElement(rs.getString(3));
          vect.addElement(rec_vector);
         }
         tm.fireTableStructureChanged(); //更新表格,显示向量vect的内容
        }catch(Exception e){e.printStackTrace();}
        buildFrame();
    }
   
    static void init()
    {
     vect = new Vector();
     vect.removeAllElements();
     //实现抽象类AbstractTableModel对象tm中的方法
     tm = new AbstractTableModel(){
      public int getColumnCount(){
       return title.length;
      }
      public int getRowCount(){
       return vect.size();
      }
      public Object getValueAt(int row,int column){
       if(!vect.isEmpty())
        return ((Vector)vect.elementAt(row)).elementAt(column);
       else
        return null;
      }
      public String getColumnName(int column){
       return title[column];
      }
      public void setValueAt(Object value,int row,int column){}
      public Class getColumnClass(int c){
       return getValueAt(0,c).getClass();
      }
      public boolean isCellEditable(int row,int column){
       return true;
      }
     };
     //定制表格
      jg_table = new JTable(tm);
      jg_table.setToolTipText("显示全部查询结果");
      jg_table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
      //设置表格调整尺寸模式
      jg_table.setCellSelectionEnabled(true); //设置单元格现在方式
      jg_table.setShowVerticalLines(true);  //设置是否显示单元格间的分隔线
      jg_table.setShowHorizontalLines(true);
      jsp = new JScrollPane(jg_table);
    }
    static void buildFrame()
    {
     JFrame jFrame = new JFrame("结果");
     jFrame.getContentPane().add(jsp);
     jFrame.setSize(600,400);
     jFrame.show();
    }
}

  • 3
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值