JTable

1.表格导入数据库

2.下载JDBC并导入

导入jar包

3.编写代码

query代码

package firsta;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class  Query {
	
	String databaseName="";    	//数据库名
	   String SQL;        		//SQL语句
	   String [] columnName;        //全部字段(列)名
	   String [][] record;          //查询到的记录
	   public Query() {
	      try{  Class.forName("com.mysql.cj.jdbc.Driver");//加载JDBC-MySQL驱动
	      }
	      catch(Exception e){}
	   }
	   public void setDatabaseName(String s) {
	      databaseName=s.trim();
	   }
	   public void setSQL(String SQL) {
	      this.SQL=SQL.trim();
	   }
	   public String[] getColumnName() {
	       if(columnName ==null ){
	           System.out.println("先查询记录");
	           return null;
	       }
	       return columnName;
	   }
	   public String[][] getRecord() {
	       startQuery();
	       return record;
	   }
	   private void startQuery() { 
	      Connection con;
	      Statement sql;  
	      ResultSet rs;
	     String uri = "jdbc:mysql://localhost:3306/company?user=root&password=123123&useSSL=true";
	      try { 
	        con=DriverManager.getConnection(uri);
	        sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
	                                ResultSet.CONCUR_READ_ONLY);
	        rs=sql.executeQuery(SQL);
	        ResultSetMetaData metaData = rs.getMetaData();
	        int columnCount = metaData.getColumnCount();//字段数目 
	        columnName=new String[columnCount]; 
	        for(int i=1;i<=columnCount;i++){
	            columnName[i-1]=metaData.getColumnName(i);
	        } 
	        rs.last(); 
	        int recordAmount =rs.getRow();  //结果集中的记录数目
	        record = new String[recordAmount][columnCount];
	        int i=0;
	        rs.beforeFirst();
	        while(rs.next()) { 
	          for(int j=1;j<=columnCount;j++){
	             record[i][j-1]=rs.getString(j); //第i条记录,放入二维数组的第i行
	          }
	          i++;
	        }
	        con.close();
	      }
	      catch(SQLException e) {
	        System.out.println("请输入正确的表名"+e);
	      }
	   } 
}

jdbc主代码

package firsta;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class jdbc {
   public static void main(String args[]) {
      String [] tableHead;
      String [][] content; 
      JTable table;
      JFrame win= new JFrame();
      Query findRecord = new  Query();
      findRecord.setDatabaseName("company");
      findRecord.setSQL("select * from clggb");
      content = findRecord.getRecord();
      tableHead=findRecord.getColumnName();
      table = new JTable(content,tableHead); 
      win.add(new JScrollPane(table));
      win.setBounds(12,100,400,200);
      win.setVisible(true); 
      win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

访问数据库时需注意:

在这里插入图片描述
在这里插入图片描述

4.改错

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值