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

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

?? jdbcadapter.java~1~

?? 這是一個用Jtable的一個學習的例子,內容比較簡單,但很實用!
?? JAVA~1~
字號:
/* * @(#)JDBCAdapter.java	1.16 04/07/26 *  * Copyright (c) 2004 Sun Microsystems, Inc. All Rights Reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: *  * -Redistribution of source code must retain the above copyright notice, this *  list of conditions and the following disclaimer. *  * -Redistribution in binary form must reproduce the above copyright notice,  *  this list of conditions and the following disclaimer in the documentation *  and/or other materials provided with the distribution. *  * Neither the name of Sun Microsystems, Inc. or the names of contributors may  * be used to endorse or promote products derived from this software without  * specific prior written permission. *  * This software is provided "AS IS," without a warranty of any kind. ALL  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST  * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,  * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY  * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,  * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. *  * You acknowledge that this software is not designed, licensed or intended * for use in the design, construction, operation or maintenance of any * nuclear facility. *//* * @(#)JDBCAdapter.java	1.16 04/07/26 *//** * An adaptor, transforming the JDBC interface to the TableModel interface. * * @version 1.20 09/25/97 * @author Philip Milne */import java.util.Vector;import java.sql.*;import javax.swing.table.AbstractTableModel;import javax.swing.event.TableModelEvent;public class JDBCAdapter extends AbstractTableModel {    Connection          connection;    Statement           statement;    ResultSet           resultSet;    String[]            columnNames = {};    Vector		rows = new Vector();    ResultSetMetaData   metaData;    public JDBCAdapter(String url, String driverName,                       String user, String passwd) {        try {            Class.forName(driverName);            System.out.println("Opening db connection");            connection = DriverManager.getConnection(url, user, passwd);            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);        }     }    public void executeQuery(String query) {        if (connection == null || statement == null) {            System.err.println("There is no database to execute the query.");            return;        }        try {            resultSet = statement.executeQuery(query);            metaData = resultSet.getMetaData();            int numberOfColumns =  metaData.getColumnCount();            columnNames = new String[numberOfColumns];            // Get the column names and cache them.            // Then we can close the connection.            for(int column = 0; column < numberOfColumns; column++) {                columnNames[column] = metaData.getColumnLabel(column+1);            }            // Get all rows.            rows = new Vector();            while (resultSet.next()) {                Vector newRow = new Vector();                for (int i = 1; i <= getColumnCount(); i++) {	            newRow.addElement(resultSet.getObject(i));                }                rows.addElement(newRow);            }            //  close(); Need to copy the metaData, bug in jdbc:odbc driver.            fireTableChanged(null); // Tell the listeners a new table has arrived.        }        catch (SQLException ex) {            System.err.println(ex);        }    }    public void close() throws SQLException {        System.out.println("Closing db connection");        resultSet.close();        statement.close();        connection.close();    }    protected void finalize() throws Throwable {        close();        super.finalize();    }    //////////////////////////////////////////////////////////////////////////    //    //             Implementation of the TableModel Interface    //    //////////////////////////////////////////////////////////////////////////    // MetaData    public String getColumnName(int column) {        if (columnNames[column] != null) {            return columnNames[column];        } else {            return "";        }    }    public Class getColumnClass(int column) {        int type;        try {            type = metaData.getColumnType(column+1);        }        catch (SQLException e) {            return super.getColumnClass(column);        }        switch(type) {        case Types.CHAR:        case Types.VARCHAR:        case Types.LONGVARCHAR:            return String.class;        case Types.BIT:            return Boolean.class;        case Types.TINYINT:        case Types.SMALLINT:        case Types.INTEGER:            return Integer.class;        case Types.BIGINT:            return Long.class;        case Types.FLOAT:        case Types.DOUBLE:            return Double.class;        case Types.DATE:            return java.sql.Date.class;        default:            return Object.class;        }    }    public boolean isCellEditable(int row, int column) {        try {            return metaData.isWritable(column+1);        }        catch (SQLException e) {            return false;        }    }    public int getColumnCount() {        return columnNames.length;    }    // Data methods    public int getRowCount() {        return rows.size();    }    public Object getValueAt(int aRow, int aColumn) {        Vector row = (Vector)rows.elementAt(aRow);        return row.elementAt(aColumn);    }    public String dbRepresentation(int column, Object value) {        int type;        if (value == null) {            return "null";        }        try {            type = metaData.getColumnType(column+1);        }        catch (SQLException e) {            return value.toString();        }        switch(type) {        case Types.INTEGER:        case Types.DOUBLE:        case Types.FLOAT:            return value.toString();        case Types.BIT:            return ((Boolean)value).booleanValue() ? "1" : "0";        case Types.DATE:            return value.toString(); // This will need some conversion.        default:            return "\""+value.toString()+"\"";        }    }    public void setValueAt(Object value, int row, int column) {        try {            String tableName = metaData.getTableName(column+1);            // Some of the drivers seem buggy, tableName should not be null.            if (tableName == null) {                System.out.println("Table name returned null.");            }            String columnName = getColumnName(column);            String query =                "update "+tableName+                " set "+columnName+" = "+dbRepresentation(column, value)+                " where ";            // We don't have a model of the schema so we don't know the            // primary keys or which columns to lock on. To demonstrate            // that editing is possible, we'll just lock on everything.            for(int col = 0; col<getColumnCount(); col++) {                String colName = getColumnName(col);                if (colName.equals("")) {                    continue;                }                if (col != 0) {                    query = query + " and ";                }                query = query + colName +" = "+                    dbRepresentation(col, getValueAt(row, col));            }            System.out.println(query);            System.out.println("Not sending update to database");            // statement.executeQuery(query);        }        catch (SQLException e) {            //     e.printStackTrace();            System.err.println("Update failed");        }        Vector dataRow = (Vector)rows.elementAt(row);        dataRow.setElementAt(value, column);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码精品一区二区三| www.欧美色图| 成人a免费在线看| 欧美精品v国产精品v日韩精品| 日韩精品一区二区三区在线观看 | 亚洲黄色在线视频| 久久99精品久久久久| 在线亚洲欧美专区二区| 国产日韩欧美a| 美女一区二区三区在线观看| 欧美日本在线视频| 亚洲日本在线看| caoporn国产精品| 在线观看91精品国产入口| 亚洲国产日韩在线一区模特| 99久久久久免费精品国产| 国产亚洲女人久久久久毛片| 国产制服丝袜一区| 精品国产一区二区三区忘忧草| 亚洲丰满少妇videoshd| 99在线精品视频| 中文字幕制服丝袜成人av| 处破女av一区二区| 久久久国产综合精品女国产盗摄| 久久精品国产久精国产| 日韩免费在线观看| 久久99精品网久久| 久久久久久久久久美女| 国产精品一区二区在线观看不卡| 久久久国产精品午夜一区ai换脸| 国产在线一区观看| 国产丝袜在线精品| 成人国产在线观看| 亚洲视频免费观看| 91久久免费观看| 亚洲国产精品综合小说图片区| 欧美系列亚洲系列| 蜜桃一区二区三区在线观看| 日韩三级在线观看| 狠狠色伊人亚洲综合成人| 久久一区二区三区四区| 丰满少妇在线播放bd日韩电影| 国产性天天综合网| 日本精品免费观看高清观看| 亚洲一级在线观看| 日韩一级黄色大片| 国内一区二区在线| 国产精品久久久久久福利一牛影视| 波波电影院一区二区三区| 亚洲免费观看高清完整版在线观看 | www成人在线观看| 国产乱码精品一区二区三区忘忧草| 国产欧美一区二区三区网站| 色香蕉久久蜜桃| 日韩高清不卡在线| 国产婷婷精品av在线| 色94色欧美sute亚洲13| 日韩精品国产精品| 中文av一区二区| 欧美日韩国产成人在线免费| 国产一区二区精品久久91| 亚洲色图第一区| 日韩欧美国产午夜精品| 99国产精品久久久| 美脚の诱脚舐め脚责91| 中文字幕永久在线不卡| 欧美精品日韩一本| 99久久精品国产网站| 亚洲免费伊人电影| 精品福利一区二区三区| 91一区二区在线| 久久国产综合精品| 亚洲精品亚洲人成人网| 精品少妇一区二区三区在线视频| 91啪亚洲精品| 黄一区二区三区| 亚洲高清在线精品| 最好看的中文字幕久久| 日韩欧美黄色影院| 欧美亚洲一区二区在线| 国产成人高清在线| 免费观看一级特黄欧美大片| 亚洲日本免费电影| 国产亚洲精品资源在线26u| 欧美日韩国产片| k8久久久一区二区三区| 激情深爱一区二区| 日韩电影一区二区三区四区| 亚洲人成7777| 国产欧美日韩中文久久| 欧美电视剧免费全集观看| 欧美视频一区在线| 色吧成人激情小说| 一本大道久久精品懂色aⅴ | 日韩极品在线观看| 亚洲欧美在线视频| 国产区在线观看成人精品| 欧美一区日本一区韩国一区| 欧美亚洲国产怡红院影院| av中文字幕不卡| 成人美女在线视频| 国产一区二区三区美女| 老色鬼精品视频在线观看播放| 亚洲国产婷婷综合在线精品| 亚洲人成7777| 1区2区3区精品视频| 中文字幕精品在线不卡| 久久久精品天堂| 精品美女一区二区| 欧美成人一级视频| 欧美成人艳星乳罩| 欧美成人午夜电影| 久久综合999| 欧美精品一区二区三区高清aⅴ| 欧美一级生活片| 欧美一级一区二区| 精品1区2区在线观看| 欧美成人激情免费网| 日韩欧美123| 久久综合久色欧美综合狠狠| 精品国产污网站| 中文字幕欧美区| 中文字幕综合网| 亚洲国产精品久久久久婷婷884| 午夜精品久久久久久| 日本不卡视频在线观看| 久久99久久99| 成人免费va视频| 99免费精品视频| 欧美日韩国产天堂| 久久综合av免费| 亚洲欧洲三级电影| 亚洲r级在线视频| 奇米精品一区二区三区四区 | 9l国产精品久久久久麻豆| 91麻豆.com| 日韩三级免费观看| 2020日本不卡一区二区视频| 国产精品久久久久久久久免费相片| 国产精品成人免费| 亚洲成av人片在线观看| 国产伦精一区二区三区| www.成人在线| 91麻豆精品国产自产在线| 久久伊人中文字幕| 亚洲免费伊人电影| 国内外精品视频| 94-欧美-setu| 日韩一级片网站| 亚洲女同女同女同女同女同69| 午夜精品aaa| 成人午夜又粗又硬又大| 欧美日韩一区二区三区在线| 久久色视频免费观看| 一区二区三区四区激情| 国产一区二区0| 欧美中文字幕一区| 久久久亚洲高清| 亚洲成在线观看| 成人黄色网址在线观看| 日韩欧美黄色影院| 亚洲已满18点击进入久久| 国产制服丝袜一区| 制服丝袜成人动漫| 亚洲精品国产一区二区三区四区在线| 毛片av一区二区| 欧美无砖砖区免费| 最好看的中文字幕久久| 六月丁香婷婷久久| 欧美日韩国产一级| 亚洲乱码国产乱码精品精98午夜 | 久久99久久久欧美国产| 不卡影院免费观看| 精品国产乱码久久久久久夜甘婷婷 | 欧美精品第1页| 亚洲免费在线播放| 成人午夜电影网站| 久久综合九色综合欧美98| 日韩av高清在线观看| 91电影在线观看| 亚洲三级理论片| 波波电影院一区二区三区| 国产色产综合产在线视频| 蜜臀久久久久久久| 91麻豆精品国产自产在线| 亚洲二区在线观看| 欧美日韩免费观看一区三区| 亚洲三级理论片| 91免费在线看| 国产精品色婷婷| 国产精品69毛片高清亚洲| 亚洲精品一区在线观看| 卡一卡二国产精品| 亚洲精品一区二区三区在线观看| 琪琪久久久久日韩精品| 欧美日本免费一区二区三区| 亚洲国产另类精品专区| 在线成人av网站| 日本视频在线一区| 日韩一区二区三区在线视频|