亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? databasetest1.java.bak

?? Java程序設計培訓教程2
?? BAK
字號:
import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
import java.applet.Applet;
import java.sql.*;
import java.awt.event.*;
import java.util.Vector;
//import java.io.*;

public class DatabaseTest1{
	public static void main(String args[]){
	/*聲明一個JFrame對象,標題為"FancyTable"*/
    JFrame frame=new JFrame("FancyTable");
    /*聲明一個JLabel對象,用于放在JFrame正上方*/
    JLabel titleLabel=new JLabel("fancy talbe demo!");
    
	/*聲明了兩個JPanel對象,mainPanel用于放置顯示數據所用的表格,subPanel用于放置上面的sortButton和queryButton兩個按鈕*/
    JPanel mainPanel=new JPanel(false);
     
    /*聲明一個JScrollPane對象tablePanel,用于使得生成的表格帶有滾動條*/
    JScrollPane tablePanel;
     /*調用本類中的createTable()方法生成表格*/
    tablePanel=createTable();
    mainPanel.add(tablePanel);
	/*為Frame對象注冊窗口事件監聽器,這樣就可以單擊界面右上方的關閉按鈕退出程序的運行*/
    frame.addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent e){System.exit(0);}});
    /*將mainPanel添加到Frame中的Center位置*/
    frame.getContentPane().add("Center",mainPanel);

    /*使Frame以最緊湊的樣式顯示*/
    frame.pack();
    /*使Frame可見*/
    frame.setVisible(true);
    }
	/**createTable() creates a table and add the table to a JScrollPane,then return the JScrollPane*/
    public static JScrollPane createTable(){
        TableModel stuTable;
        JDBCAdapter dt;
        /*聲明Vector型變量rowVector,用于存放讀取到的信息*/
   		Vector rowVector;
   		/*聲明JTable對象,用于會創建一個顯示讀取信息的表格*/
    	JTable table;

    	/*通過JDBC訪問數據庫獲得的數據創建表格*/
    	/*url指定需要訪問的數據庫名稱*/
        String url="jdbc:odbc:MyDatabase";
        /*driver指定訪問數據庫的驅動程序的名稱*/
        String driver="sun.jdbc.odbc.JdbcOdbcDriver";
        /*user和password用于指定訪問數據庫時使用的用戶名和密碼*/
        String user="sa";
        String password="";
        /*query代表需要執行的SQL語句*/
        String query="select * from student";
        /*通過構造一個JDBCAdapter類的對象來訪問數據庫*/
        dt=new JDBCAdapter(url,driver,user,password);
		/*對指定的數據庫MyDatabase執行SQL語句,executeQuery方法是類JDBCAdapter中定義的*/
        dt.executeQuery(query);
        /*將取得的結果賦給stuTable對象*/
        stuTable=dt;
        /*根據取得的數據創建表格*/
        table=new JTable(stuTable);
        /*用矢量rowVector存放取得的數據行向量*/
        rowVector=dt.rows;
        
        /*使得表格各列的大小設置為可以自動調節*/
        table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        /*根據創建的表格生成JScrollPane對象,這樣表格就可以帶有滾動條*/
        JScrollPane scrollpane=new JScrollPane(table);
        return scrollpane;
    }
}


class JDBCAdapter extends AbstractTableModel {
    /*聲明一個Connection對象,用于和數據庫建立連接*/
    Connection          connection;
    /*聲明一個Statement對象,用于對數據庫執行SQL語句*/
    Statement           statement;
    /*聲明一個ResultSet對象,用于存放SQL語句執行的結果*/
    ResultSet           resultSet;
    /*定義一個字符串數組,用于存放結果集中的列數*/
    String[]            columnNames = {};
    /*聲明一個Vector對象,用于將取得的數據按行放在rows中*/
    Vector		rows = new Vector();
    /*聲明ResultSetMetaData對象,用于從ResultSet對象中獲得數據屬性和類型*/
    ResultSetMetaData   metaData;
    /**
     *create a connection to the database specified by parameter url.url parameter is
 	 *the name of database,driverName parameter is the name of a driver,which JDBC used
     *to connect to database.
     */
     /*下面是構造方法,四個參數分別代表要連接的數據庫,驅動程序,用戶名和密碼*/
    public JDBCAdapter(String url, String driverName,
                       String user, String passwd) {
        try {
        	/*返回driverName字符串對應的類對象*/
            Class.forName(driverName);
            /*輸出"Opening db connection"提示信息*/
            System.out.println("Opening db connection");
			/*下面的語句進行數據庫的連接*/
            connection = DriverManager.getConnection(url, user, passwd);
            /*創建SQL語句*/
            statement = connection.createStatement();
        }
        catch (ClassNotFoundException ex) {
            /*輸出沒有找到數據庫驅動程序類的信息*/
            System.err.println("Cannot find the database driver classes.");
            System.err.println(ex);
        }
        catch (SQLException ex) {
        	/*輸出不能連接到數據庫的信息*/
            System.err.println("Cannot connect to this database.");
            System.err.println(ex);
        }
     }
     /**
      * create a table model by executing  sql statement.
      */
      /*executeQuery(String query)方法執行字符串參數query指定的語句*/
    public void executeQuery(String query) {
    	/*if語句中的條件表示數據庫連接不成功或者沒有創建SQL語句*/
        if (connection == null || statement == null) {
            System.err.println("There is no database to execute the query.");
            return;
        }
        try {
        	/*執行SQL語句,將結果放在結果集對象resultSet中*/
            resultSet = statement.executeQuery(query);
			/*通過getMetaData()方法將resultSet中的數據傳到ResultSetMetaData對象metaData中*/
            metaData = resultSet.getMetaData();
            /*獲得metaData中數據的列數*/
            int numberOfColumns =  metaData.getColumnCount();
            /*根據取得的列數創建字符串數組,數組的長度就是上面得到的列數*/
            columnNames = new String[numberOfColumns];
            /*將取得數據的各列名稱賦給字符串數組中的各元素*/
            for(int column = 0; column < numberOfColumns; column++) {
                columnNames[column] = metaData.getColumnLabel(column+1);
            }
            /*對rows進行初始化*/
            rows = new Vector();
            while (resultSet.next()) {
            	/*聲明一個Vector對象newRow,用于存放取得結果集中一行數據*/
                Vector newRow = new Vector();
                /*利用一個for循環,將結果集中一行數據放到newRow矢量中*/
                for (int i = 1; i <= getColumnCount(); i++) {
	            newRow.addElement(resultSet.getObject(i));
            	}
				/*將上面的矢量newRow作為矢量rows中的一個元素,這樣rows中的一個元素就代表結果集中的一行數據*/
                rows.addElement(newRow);
            }
            /*將發生的事件提交給監聽器*/
            fireTableChanged(null); // Tell the listeners a new table has arrived.
        }
        catch (SQLException ex) {
            System.err.println(ex);
        }
    }
    /*將前面生成的結果集對象\SQL語句對象和數據庫連接對象關閉*/
    public void close() throws SQLException {
        System.out.println("Closing db connection");
        resultSet.close();
        statement.close();
        connection.close();
    }
    /*通過finalize()執行上面的close()方法*/
    protected void finalize() throws Throwable {
        close();
        super.finalize();
    }
	/**
     * Implementation of the TableModel Interface
     */
    /*重寫getColumnCount方法,獲得列數*/
    public int getColumnCount() {
        return columnNames.length;
    }
	/**
     * Implementation of the TableModel Interface
     */
     /*重寫getRowCount方法,獲得行數*/
    public int getRowCount() {
        return rows.size();
    }
	/**
     * Implementation of the TableModel Interface
     */
    /*重寫getValueAt方法,獲得參數指定位置的對象*/
    public Object getValueAt(int aRow, int aColumn) {
        Vector row = (Vector)rows.elementAt(aRow);
        return row.elementAt(aColumn);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久先锋资源网| 男人的j进女人的j一区| 欧美一区二区三区啪啪| 91久久精品一区二区二区| 国产成人免费视频| 国产精品99久久久久久久女警| 韩国欧美一区二区| 国产一区二区导航在线播放| 免费欧美高清视频| 久久精品国产一区二区三 | 99精品视频在线播放观看| 国产福利精品一区| 国产高清不卡一区二区| 成人性生交大片免费看视频在线| 成人黄色在线网站| 色视频欧美一区二区三区| 欧美网站一区二区| 91精品国产综合久久精品图片| 欧美一级免费大片| 欧美大片国产精品| 国产精品久久久久久久久图文区 | 色婷婷久久久久swag精品| 欧美日韩在线三级| 日韩精品一区二区三区视频在线观看| 日韩欧美美女一区二区三区| 国产亚洲一区二区在线观看| 中文字幕一区二区日韩精品绯色| 亚洲男同性视频| 日本aⅴ亚洲精品中文乱码| 国产毛片精品一区| 在线精品视频小说1| 日韩你懂的电影在线观看| 久久精品一区二区三区av| 自拍偷拍亚洲综合| 蜜桃91丨九色丨蝌蚪91桃色| av在线一区二区三区| 欧美精品在线一区二区三区| 国产亚洲一区字幕| 亚洲午夜久久久久久久久电影网 | 日韩高清国产一区在线| 555www色欧美视频| 欧美在线啊v一区| 国产最新精品免费| 91原创在线视频| 欧美一区三区四区| 中文字幕亚洲区| 狠狠网亚洲精品| 欧美日韩国产精品自在自线| 精品国内片67194| 亚洲蜜臀av乱码久久精品| 老司机精品视频在线| 色综合久久久久综合体| 欧美精品一区视频| 日本视频一区二区| 欧洲亚洲国产日韩| 国产精品久久影院| 久久精品国产免费| 欧美日韩一区中文字幕| 亚洲欧美aⅴ...| 日韩av在线发布| 在线观看视频一区二区| 中文字幕国产一区| 国产一区啦啦啦在线观看| 91麻豆精品国产91久久久资源速度 | 欧美变态口味重另类| 亚洲国产综合91精品麻豆| 91在线一区二区三区| 欧美va在线播放| 精品综合久久久久久8888| 欧美日韩亚洲综合在线| 亚洲理论在线观看| 91色视频在线| 亚洲精品成人在线| 91久久精品午夜一区二区| 亚洲人精品一区| 一本到不卡免费一区二区| 亚洲另类春色国产| 在线观看一区不卡| 午夜精品aaa| 91精品国产欧美日韩| 日本女人一区二区三区| 欧美一区日韩一区| 国产米奇在线777精品观看| 26uuu色噜噜精品一区| 国内精品免费在线观看| 久久影音资源网| 成人免费毛片a| 亚洲免费毛片网站| 欧美在线|欧美| 蜜桃在线一区二区三区| 欧美精品一区二区三区视频| 国产成人在线免费| 亚洲欧美日韩国产中文在线| 欧美伊人久久久久久久久影院 | 国产精品毛片久久久久久 | 国产精品三级av在线播放| 国产aⅴ综合色| 中文字幕在线观看一区二区| 91老司机福利 在线| 日韩成人免费在线| 久久久.com| 欧美午夜电影网| 老司机一区二区| 中文字幕一区二区三区蜜月| 欧美怡红院视频| 国内欧美视频一区二区| 亚洲女同女同女同女同女同69| 欧美三级电影在线看| 精品一区二区三区不卡| 亚洲色图视频网站| 欧美一区二区女人| 99久久婷婷国产综合精品电影 | 蜜桃一区二区三区四区| 中文字幕av一区 二区| 欧美日韩视频第一区| 国产精品中文字幕欧美| 午夜久久久久久久久久一区二区| 精品国产一区二区三区久久久蜜月| 成人综合日日夜夜| 免费视频最近日韩| 中文字幕在线不卡一区二区三区| 日韩一区二区免费高清| 色综合视频一区二区三区高清| 蜜臀99久久精品久久久久久软件 | 欧美亚洲图片小说| 国产精品一区在线观看乱码| 亚洲狠狠爱一区二区三区| 国产精品日产欧美久久久久| 欧美精品1区2区| 日本电影亚洲天堂一区| 国产成人在线视频网站| 玖玖九九国产精品| 亚洲不卡一区二区三区| √…a在线天堂一区| 精品国产成人在线影院 | 久久成人麻豆午夜电影| 亚洲一区在线看| 亚洲美女偷拍久久| 国产精品伦一区二区三级视频| 欧美一级在线观看| 制服丝袜日韩国产| 欧美日韩成人综合| 欧美日韩精品一二三区| 在线精品视频小说1| 日本黄色一区二区| 91在线观看下载| 国产91对白在线观看九色| 国产一区久久久| 国产精品99久久久| 国产99久久久久久免费看农村| 黄色日韩网站视频| 精品一区二区三区在线播放视频| 蜜臀av一级做a爰片久久| 日韩在线一区二区| 久久99精品久久久久婷婷| 蜜桃久久av一区| 国产精品资源站在线| 国产成人免费视频网站高清观看视频| 国产一区二区三区四区五区入口 | 欧美日韩高清在线播放| 91福利在线免费观看| 欧美亚洲免费在线一区| 欧洲精品一区二区| 7777精品伊人久久久大香线蕉| 欧美日本在线播放| 欧美不卡一区二区三区四区| 日韩欧美一级二级三级久久久| 日韩一区二区三区在线观看| 日韩精品资源二区在线| 2欧美一区二区三区在线观看视频| 久久久亚洲精华液精华液精华液| 国产亚洲欧美中文| 一区二区久久久| 免费看黄色91| 成人免费看视频| 欧美日韩一区小说| 精品国产伦一区二区三区免费| 国产女人18毛片水真多成人如厕| 亚洲三级在线免费| 日韩极品在线观看| 成人午夜免费视频| 欧美日韩国产在线播放网站| 精品国产乱码久久久久久1区2区| 国产精品欧美一级免费| 亚洲va韩国va欧美va精品| 国内精品久久久久影院色| 不卡免费追剧大全电视剧网站| 欧美日韩中文字幕精品| 久久综合久久鬼色中文字| 一区二区三区精品| 国产精品538一区二区在线| 91福利在线观看| 国产日产亚洲精品系列| 亚洲国产日韩a在线播放性色| 激情小说欧美图片| 欧美在线观看一区二区| 日本一区二区三区四区| 日韩国产欧美在线视频| 色呦呦国产精品| 国产日产欧美一区|