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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? databasetest1.java

?? Java程序設(shè)計(jì)培訓(xùn)教程2
?? JAVA
字號(hào):
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;

/**DatabaseTest1類的目的是取得數(shù)據(jù)庫(kù)中的信息以表格的形式顯示出來(lái)*/
public class DatabaseTest1{
	public static void main(String args[]){
	/*聲明一個(gè)JFrame對(duì)象,標(biāo)題為"FancyTable"*/
    JFrame frame=new JFrame("An example of database!");
    /*聲明一個(gè)JLabel對(duì)象,用于放在JFrame正上方*/
    JLabel titleLabel=new JLabel("Talbe demo!");
    
	/*聲明了兩個(gè)JPanel對(duì)象,mainPanel用于放置顯示數(shù)據(jù)所用的表格,subPanel用于放置上面的sortButton和queryButton兩個(gè)按鈕*/
    JPanel mainPanel=new JPanel(false);
     
    /*聲明一個(gè)JScrollPane對(duì)象tablePanel,用于使得生成的表格帶有滾動(dòng)條*/
    JScrollPane tablePanel;
     /*調(diào)用本類中的createTable()方法生成表格*/
    tablePanel=createTable();
    mainPanel.add(tablePanel);
	/*為Frame對(duì)象注冊(cè)窗口事件監(jiān)聽(tīng)器,這樣就可以單擊界面右上方的關(guān)閉按鈕退出程序的運(yùn)行*/
    frame.addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent e){System.exit(0);}});
    /*將mainPanel添加到Frame中的Center位置*/
    frame.getContentPane().add("Center",mainPanel);

    /*使Frame以最緊湊的樣式顯示*/
    frame.pack();
    /*使Frame可見(jiàn)*/
    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對(duì)象,用于會(huì)創(chuàng)建一個(gè)顯示讀取信息的表格*/
    	JTable table;

    	/*通過(guò)JDBC訪問(wèn)數(shù)據(jù)庫(kù)獲得的數(shù)據(jù)創(chuàng)建表格*/
    	/*url指定需要訪問(wèn)的數(shù)據(jù)庫(kù)名稱*/
        String url="jdbc:odbc:MyDatabase";
        /*driver指定訪問(wèn)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序的名稱*/
        String driver="sun.jdbc.odbc.JdbcOdbcDriver";
        /*user和password用于指定訪問(wèn)數(shù)據(jù)庫(kù)時(shí)使用的用戶名和密碼*/
        String user="sa";
        String password="";
        /*query代表需要執(zhí)行的SQL語(yǔ)句*/
        String query="select * from student1";
        /*通過(guò)構(gòu)造一個(gè)JDBCAdapter類的對(duì)象來(lái)訪問(wèn)數(shù)據(jù)庫(kù)*/
        dt=new JDBCAdapter(url,driver,user,password);
		/*對(duì)指定的數(shù)據(jù)庫(kù)MyDatabase執(zhí)行SQL語(yǔ)句,executeQuery方法是類JDBCAdapter中定義的*/
        dt.executeQuery(query);
        /*將取得的結(jié)果賦給stuTable對(duì)象*/
        stuTable=dt;
        /*根據(jù)取得的數(shù)據(jù)創(chuàng)建表格*/
        table=new JTable(stuTable);
        /*用矢量rowVector存放取得的數(shù)據(jù)行向量*/
        rowVector=dt.rows;
        
        /*使得表格各列的大小設(shè)置為可以自動(dòng)調(diào)節(jié)*/
        table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        /*根據(jù)創(chuàng)建的表格生成JScrollPane對(duì)象,這樣表格就可以帶有滾動(dòng)條*/
        JScrollPane scrollpane=new JScrollPane(table);
        return scrollpane;
    }
}

/**類JDBCAdapter是AbstractTableModel的子類*/
class JDBCAdapter extends AbstractTableModel {
    /*聲明一個(gè)Connection對(duì)象,用于和數(shù)據(jù)庫(kù)建立連接*/
    Connection          connection;
    /*聲明一個(gè)Statement對(duì)象,用于對(duì)數(shù)據(jù)庫(kù)執(zhí)行SQL語(yǔ)句*/
    Statement           statement;
    /*聲明一個(gè)ResultSet對(duì)象,用于存放SQL語(yǔ)句執(zhí)行的結(jié)果*/
    ResultSet           resultSet;
    /*定義一個(gè)字符串?dāng)?shù)組,用于存放結(jié)果集中的列數(shù)*/
    String[]            columnNames = {};
    /*聲明一個(gè)Vector對(duì)象,用于將取得的數(shù)據(jù)按行放在rows中*/
    Vector		rows = new Vector();
    /*聲明ResultSetMetaData對(duì)象,用于從ResultSet對(duì)象中獲得數(shù)據(jù)屬性和類型*/
    ResultSetMetaData   metaData;
    /**下面是構(gòu)造方法,四個(gè)參數(shù)分別代表要連接的數(shù)據(jù)庫(kù),驅(qū)動(dòng)程序,用戶名和密碼*/
    public JDBCAdapter(String url, String driverName,
                       String user, String passwd) {
        try {
        	/*返回driverName字符串對(duì)應(yīng)的類對(duì)象*/
            Class.forName(driverName);
            /*輸出"Opening db connection"提示信息*/
            System.out.println("Opening db connection");
			/*下面的語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)的連接*/
            connection = DriverManager.getConnection(url, user, passwd);
            /*創(chuàng)建SQL語(yǔ)句*/
            statement = connection.createStatement();
        }
        catch (ClassNotFoundException ex) {
            /*輸出沒(méi)有找到數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序類的信息*/
            System.err.println("Cannot find the database driver classes.");
            System.err.println(ex);
        }
        catch (SQLException ex) {
        	/*輸出不能連接到數(shù)據(jù)庫(kù)的信息*/
            System.err.println("Cannot connect to this database.");
            System.err.println(ex);
        }
     }
    /**executeQuery(String query)方法執(zhí)行字符串參數(shù)query指定的語(yǔ)句*/
    public void executeQuery(String query) {
    	/*if語(yǔ)句中的條件表示數(shù)據(jù)庫(kù)連接不成功或者沒(méi)有創(chuàng)建SQL語(yǔ)句*/
        if (connection == null || statement == null) {
            System.err.println("There is no database to execute the query.");
            return;
        }
        try {
        	/*執(zhí)行SQL語(yǔ)句,將結(jié)果放在結(jié)果集對(duì)象resultSet中*/
            resultSet = statement.executeQuery(query);
			/*通過(guò)getMetaData()方法將resultSet中的數(shù)據(jù)傳到ResultSetMetaData對(duì)象metaData中*/
            metaData = resultSet.getMetaData();
            /*獲得metaData中數(shù)據(jù)的列數(shù)*/
            int numberOfColumns =  metaData.getColumnCount();
            /*根據(jù)取得的列數(shù)創(chuàng)建字符串?dāng)?shù)組,數(shù)組的長(zhǎng)度就是上面得到的列數(shù)*/
            columnNames = new String[numberOfColumns];
            /*將取得數(shù)據(jù)的各列名稱賦給字符串?dāng)?shù)組中的各元素*/
            for(int column = 0; column < numberOfColumns; column++) {
                columnNames[column] = metaData.getColumnLabel(column+1);
            }
            /*對(duì)rows進(jìn)行初始化*/
            rows = new Vector();
            while (resultSet.next()) {
            	/*聲明一個(gè)Vector對(duì)象newRow,用于存放取得結(jié)果集中一行數(shù)據(jù)*/
                Vector newRow = new Vector();
                /*利用一個(gè)for循環(huán),將結(jié)果集中一行數(shù)據(jù)放到newRow矢量中*/
                for (int i = 1; i <= getColumnCount(); i++) {
	            newRow.addElement(resultSet.getObject(i));
            	}
				/*將上面的矢量newRow作為矢量rows中的一個(gè)元素,這樣rows中的一個(gè)元素就代表結(jié)果集中的一行數(shù)據(jù)*/
                rows.addElement(newRow);
            }
            /*將發(fā)生的事件提交給監(jiān)聽(tīng)器*/
            fireTableChanged(null); // Tell the listeners a new table has arrived.
        }
        catch (SQLException ex) {
            System.err.println(ex);
        }
    }
    /**將前面生成的結(jié)果集對(duì)象、SQL語(yǔ)句對(duì)象和數(shù)據(jù)庫(kù)連接對(duì)象關(guān)閉*/
    public void close() throws SQLException {
        System.out.println("Closing db connection");
        resultSet.close();
        statement.close();
        connection.close();
    }
    /**通過(guò)finalize()執(zhí)行上面的close()方法*/
    protected void finalize() throws Throwable {
        close();
        super.finalize();
    }
	/**
     * Implementation of the TableModel Interface
     */
    /*重寫(xiě)getColumnName方法,獲得參數(shù)column指定列的名稱*/
    public String getColumnName(int column) {
        if (columnNames[column] != null) {
            return columnNames[column];
        } else {
            return "";
        }
    }
    /*值得注意的是,實(shí)現(xiàn)TabelModel接口,必須重寫(xiě)下面三個(gè)方法*/
    /**重寫(xiě)getColumnCount方法,獲得列數(shù)*/
    public int getColumnCount() {
        return columnNames.length;
    }
	/**重寫(xiě)getRowCount方法,獲得行數(shù)*/
    public int getRowCount() {
        return rows.size();
    }
	/**重寫(xiě)getValueAt方法,獲得參數(shù)指定位置的對(duì)象*/
    public Object getValueAt(int aRow, int aColumn) {
        Vector row = (Vector)rows.elementAt(aRow);
        return row.elementAt(aColumn);
    }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成年人影院| 男女男精品网站| 欧美大尺度电影在线| 东方aⅴ免费观看久久av| 亚洲韩国一区二区三区| 久久精品欧美一区二区三区麻豆| 欧美偷拍一区二区| 丁香激情综合国产| 九九**精品视频免费播放| 一区二区三区四区在线免费观看| 久久蜜桃av一区精品变态类天堂| 欧美日韩免费一区二区三区 | 亚洲老妇xxxxxx| 精品粉嫩超白一线天av| 欧美日韩精品系列| 色综合久久久久综合体桃花网| 久久国产剧场电影| 日韩av在线播放中文字幕| 一区二区三区日韩在线观看| 日本一区二区三区dvd视频在线| 91精品国产一区二区三区| 91官网在线观看| 97久久超碰精品国产| 从欧美一区二区三区| 国产精品一区二区视频| 美女尤物国产一区| 日本不卡一区二区三区| 亚洲图片欧美色图| 亚洲丰满少妇videoshd| 夜色激情一区二区| 一区二区在线电影| 亚洲精品一二三| 一区二区在线免费| 亚洲免费观看高清完整版在线观看| 欧美极品美女视频| 国产丝袜欧美中文另类| 国产亚洲一二三区| 亚洲国产高清不卡| 国产欧美精品一区aⅴ影院| 国产午夜亚洲精品羞羞网站| 久久精品夜夜夜夜久久| 亚洲在线视频网站| 一区二区久久久久久| 一区二区三区国产精华| 亚洲一区二区视频| 丝袜a∨在线一区二区三区不卡| 婷婷夜色潮精品综合在线| 午夜精品久久久久久久久久 | 日韩电影在线看| 日本女优在线视频一区二区| 免费高清在线一区| 精品在线亚洲视频| 国产精品亚洲专一区二区三区 | 国产一区在线观看视频| 国产一区999| 99视频国产精品| 欧美午夜不卡视频| 欧美一区二区福利视频| 337p日本欧洲亚洲大胆精品| 日本一区二区三区免费乱视频| 亚洲国产高清在线观看视频| 亚洲免费在线电影| 石原莉奈在线亚洲二区| 精品亚洲porn| 95精品视频在线| 欧美日韩精品欧美日韩精品| 欧美成人一区二区三区| 国产精品天干天干在线综合| 亚洲黄色片在线观看| 日本美女一区二区三区视频| 国产精品一区二区在线观看网站| 99视频有精品| 91精品国产色综合久久 | 午夜精品福利在线| 国产一区二区免费视频| 97精品国产97久久久久久久久久久久| 欧美天天综合网| 久久久久久久久久久黄色| 亚洲人成亚洲人成在线观看图片| 天天色综合天天| 丁香啪啪综合成人亚洲小说| 欧美午夜精品一区| 久久久久国产精品厨房| 亚洲一二三区不卡| 韩国午夜理伦三级不卡影院| 91久久国产综合久久| 日韩欧美一区电影| 亚洲精品成人悠悠色影视| 美女视频黄免费的久久| 色欧美88888久久久久久影院| 欧美电影免费观看完整版| 中文字幕日韩av资源站| 精品一区二区三区免费视频| 日本乱码高清不卡字幕| 久久久亚洲国产美女国产盗摄| 亚洲国产精品一区二区久久 | 一道本成人在线| 久久亚洲一区二区三区四区| 亚洲国产精品影院| 成人av电影免费在线播放| 日韩欧美一二三| 亚洲综合免费观看高清在线观看| 国产精品一区一区三区| 777a∨成人精品桃花网| 亚洲精品成人精品456| 懂色av一区二区三区免费看| 日韩精品中文字幕在线一区| 亚洲一区二区高清| av高清久久久| 国产日韩欧美一区二区三区乱码 | 国产精品福利一区二区| 久久99国产精品久久| 欧美美女bb生活片| 一区二区三区四区高清精品免费观看| 岛国精品在线播放| 久久午夜老司机| 美女网站一区二区| 91精品国产91热久久久做人人| 亚洲男同1069视频| 成人免费视频播放| 久久精品网站免费观看| 久久99蜜桃精品| 欧美一区二区国产| 视频在线在亚洲| 欧美日韩一区在线| 午夜精品在线看| 欧亚洲嫩模精品一区三区| 国产精品拍天天在线| 国产成人鲁色资源国产91色综| xnxx国产精品| 国产黄人亚洲片| 国产欧美一区二区在线| 国产一区二区中文字幕| 久久久久一区二区三区四区| 国产一区二区精品久久91| 2021久久国产精品不只是精品| 久久国产麻豆精品| 久久综合丝袜日本网| 国产精品中文字幕日韩精品| 久久免费午夜影院| 国产成人精品亚洲777人妖| 国产精品视频yy9299一区| fc2成人免费人成在线观看播放| 中文字幕精品三区| 99视频在线观看一区三区| 亚洲欧美另类小说视频| 欧美性受xxxx黑人xyx| 午夜成人在线视频| 日韩精品一区二区三区在线播放| 精品一区二区免费看| 欧美韩国日本综合| 91香蕉视频mp4| 亚洲成人7777| 精品少妇一区二区三区在线视频| 国产精品中文字幕一区二区三区| 国产精品情趣视频| 欧美视频中文字幕| 日韩av成人高清| 国产亚洲一二三区| 色婷婷久久久亚洲一区二区三区 | 国产成人h网站| 亚洲欧美视频一区| 欧美日本一区二区在线观看| 精彩视频一区二区三区| 亚洲欧美在线观看| 911精品国产一区二区在线| 狠狠色综合播放一区二区| 国产精品久久久久久妇女6080| 色94色欧美sute亚洲线路一ni| 日韩在线a电影| 国产精品热久久久久夜色精品三区| 色综合久久66| 九九九精品视频| 亚洲精品五月天| 亚洲精品在线三区| 色综合久久综合中文综合网| 麻豆免费看一区二区三区| 中文字幕亚洲在| 日韩视频一区二区三区| 成人av小说网| 久久精品国产99| 亚洲欧美日韩国产综合| 精品久久久久香蕉网| 色婷婷国产精品综合在线观看| 久久99国产精品麻豆| 亚洲精品国产无天堂网2021| 26uuu成人网一区二区三区| 色一区在线观看| 国产一区二区三区在线观看免费视频| 一区二区三区久久| 国产欧美一区二区精品性色超碰 | 欧美成人一区二区三区在线观看| 99精品国产热久久91蜜凸| 五月综合激情网| 亚洲同性同志一二三专区| 欧美xxxxx牲另类人与| 欧美在线观看视频一区二区| 夫妻av一区二区| 毛片基地黄久久久久久天堂| 亚洲一区在线观看网站|