⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbcjtable2.java

📁 一个培训中心的招生系统代码 初级代码 仅用于交流
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
class JDBCJTable2 extends Frame
{
	AbstractTableModel tm;		//声明一个类AbstractTableModel对象
	JTable table;				//声明一个类JTable对象
	JScrollPane scrollpane;		//声明一个滚动面板对象
	String titles[];			//二维表列名
	Vector records;				//声明一个向量对象


	
	public void init(){
		records = new Vector();	//实例化向量
		tm = new AbstractTableModel(){
			public int getColumnCount(){
				return titles.length;	//取得表格列数
			}
			public int getRowCount(){
				return records.size();		//取得表格行数
			}
			public Object getValueAt(int row,int column){
				if(!records.isEmpty())		//取得单元格中的属性值
					return ((Vector)records.elementAt(row)).elementAt(column);
				else
					return null;
			}
			public String getColumnName(int column){
				return titles[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 false;//设置单元格不可编辑,为缺省实现
			}
		};
		
		this.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
			   dispose();
			}
		});
		
	}

	public void start() throws SQLException, ClassNotFoundException{
		//String driver="com.sybase.jdbc.SybDriver";
		//SybDriver sybdriver=(SybDriver)
		//Class.forName(driver).newInstance();
		//DriverManager.registerDriver(sybdriver);
		//String user="sa";
		//String password="";
		//String url="jdbc:sybase:Tds:202.117.203.114:5000/WORKER";
		//SybConnection connection=(SybConnection)
		//	DriverManager.getConnection(url,user,password);

		// 加载 jdbc-odbc 桥驱动程序
		String sDBDriver = "oracle.jdbc.driver.OracleDriver";
		Class.forName(sDBDriver);

		//定义JDBC URL
		//String url   = "jdbc:odbc:stu";
		

		String sConnStr = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";

		//得到与数据库的连接
		Connection connection = DriverManager.getConnection (sConnStr, "system", "system");

		//显示查询结果。 
		Statement stmt = connection.createStatement();
		ResultSet rs = stmt.executeQuery("select * from Student");
		ResultSetMetaData meta = rs. getMetaData();	//得到元数据

		int cols = meta.getColumnCount();
		System.out.println( cols );
		titles = new String[ cols ];
		for( int i=0; i<cols; i++){
			titles[i] = meta.getColumnName(i+1);	//得到列名
		}

		records.removeAllElements();//初始化向量对象
		while(rs.next()){
			Vector rec_vector=new Vector();
			//从结果集中取数据放入向量rec_vector中
			for ( int i=0; i<titles.length; i++ ){
				rec_vector.addElement(rs.getObject(i+1).toString());
			}
			records.addElement(rec_vector);
		}

		//定制表格: 
		table=new JTable(tm);	//生成自己的数据模型
		table.setToolTipText("显示全部查询结果");	//设置帮助提示
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);	//设置表格调整尺寸模式
		table.setCellSelectionEnabled(false);	//设置单元格选择方式
		table.setShowVerticalLines(true);
		table.setShowHorizontalLines(true);
		scrollpane=new JScrollPane(table);		//给表格加上滚动条
		add( scrollpane );

		tm.fireTableStructureChanged();//更新表格
	}

	/*public static void main( String [] args ){
		JDBCJTable f = new JDBCJTable();
		f.init();
		try{
			f.start();
		}catch( Exception e){ e.printStackTrace(); }
		f.setSize( 400,300);
		f.setTitle( "Show Database in JTable" );
		f.setVisible(true);
		f.addWindowListener( new WindowAdapter(){
			public void windowClosing( WindowEvent e){System.exit(0);}
		});
	}*/

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -