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

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

?? jdbcadapter.java

?? 進銷存1.1(JSP版) 很不錯得一個例子。希望能對大家有幫組。
?? JAVA
字號:
/* * @(#)JDBCAdapter.java	1.12 01/12/03 * * Copyright 2002 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. *//** * 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 String getColumnClassStr(int column) {        int type;        try {            type = metaData.getColumnType(column+1);        }        catch (SQLException e) {            return " ";        }        switch(type) {        case Types.CHAR:        case Types.VARCHAR:        case Types.LONGVARCHAR:            return "String";        case Types.BIT:            return "Boolean";        case Types.TINYINT:        case Types.SMALLINT:        case Types.INTEGER:            return "int";        case Types.BIGINT:            return "long";        case Types.FLOAT:        case Types.DOUBLE:            return "float";        case Types.DATE:            return "String";        default:            return "String";        }    }        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一区二区三区免费野_久草精品视频
国产麻豆视频一区| 中文字幕av一区二区三区高| 国产女同性恋一区二区| 国产成人欧美日韩在线电影| 中文字幕一区二区三区不卡在线| 不卡欧美aaaaa| 亚洲综合无码一区二区| 欧美精品1区2区3区| 麻豆精品国产传媒mv男同| 国产欧美日产一区| 国产偷v国产偷v亚洲高清| 色婷婷av一区二区三区gif| 国产精品 日产精品 欧美精品| 久久精品国产99国产精品| 久久久久国产免费免费 | 日韩精品专区在线影院观看| 国产99久久久国产精品| 丝瓜av网站精品一区二区| 久久精品人人做| 国产日韩三级在线| 亚洲女性喷水在线观看一区| 欧美一区二区三区视频在线| 色综合天天综合| 狠狠色伊人亚洲综合成人| 亚洲综合色噜噜狠狠| 午夜精品久久久久久不卡8050| 久久精品在这里| 欧美国产精品一区二区三区| 成人免费小视频| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品―色哟哟| 久久久久久久久伊人| 欧美—级在线免费片| 亚洲一区二区三区小说| 美女视频一区在线观看| 成人av电影在线播放| 欧美绝品在线观看成人午夜影视 | 国产一区不卡在线| 99这里只有精品| 久久99精品久久久| 日韩av在线播放中文字幕| 亚洲日本乱码在线观看| 久久人人爽人人爽| 一区二区三区四区不卡在线 | 欧美福利视频导航| 国产女人18水真多18精品一级做| 亚洲观看高清完整版在线观看| 精品亚洲国产成人av制服丝袜| 99久久99久久综合| 99久久99久久精品国产片果冻| 欧美精品 国产精品| 中文字幕一区三区| 黄一区二区三区| 91精品欧美福利在线观看| 欧美日韩激情在线| 欧美日韩一级黄| 宅男在线国产精品| 亚洲欧美国产高清| 国产成人亚洲综合a∨婷婷图片| 欧美一级久久久| 久久先锋影音av鲁色资源| 欧美激情一区在线| 裸体在线国模精品偷拍| 欧美日韩一区二区三区免费看| 国产精品久久久久久久久图文区| 亚洲精品中文字幕乱码三区| 亚洲国产精品久久不卡毛片| 99精品视频在线观看免费| 精品久久国产字幕高潮| 国产精品区一区二区三| 国产乱码精品一区二区三区忘忧草| 国产精品综合一区二区三区| 日韩免费观看高清完整版在线观看| 亚洲午夜私人影院| 欧美色精品在线视频| 亚洲一区二区五区| 一本色道久久加勒比精品| 最新国产成人在线观看| 99精品视频在线播放观看| 欧美国产精品一区| 成人美女视频在线看| 欧美精品 国产精品| 日日欢夜夜爽一区| 欧美一级一区二区| 国内外成人在线| 中文字幕av一区二区三区高| 亚洲午夜久久久久久久久久久| 欧美日韩在线免费视频| 日本色综合中文字幕| 日韩视频一区二区三区在线播放| 青青草成人在线观看| 91网上在线视频| 久久久久九九视频| 成人精品免费网站| 亚洲一区二区在线视频| 欧美高清www午色夜在线视频| 五月开心婷婷久久| www国产成人| 99久久精品一区| 午夜精品久久久久影视| 久久综合九色综合97_久久久| 国产91精品一区二区麻豆亚洲| 中文字幕中文在线不卡住| 在线亚洲+欧美+日本专区| 久久九九全国免费| 91在线看国产| 日本三级亚洲精品| 中文字幕制服丝袜一区二区三区| 欧美视频自拍偷拍| 亚洲黄色免费电影| 欧美成人r级一区二区三区| 国产精品自拍毛片| 午夜精品免费在线观看| 久久美女艺术照精彩视频福利播放| 成人av免费网站| 免播放器亚洲一区| 成人免费在线视频| 日韩一级视频免费观看在线| 懂色av一区二区三区免费看| 香港成人在线视频| 91精品国产综合久久福利软件| 国产传媒久久文化传媒| 亚洲成人激情av| 中文子幕无线码一区tr| 欧美一卡二卡在线观看| 色噜噜狠狠一区二区三区果冻| 中文字幕av一区 二区| 欧美精品99久久久**| 99re免费视频精品全部| 激情深爱一区二区| 午夜不卡av免费| 亚洲欧美在线观看| 欧美国产成人精品| 精品国产免费一区二区三区香蕉| 加勒比av一区二区| 日本欧美一区二区| 亚洲永久精品大片| 国产精品伦理一区二区| 欧美www视频| 欧美午夜一区二区三区免费大片| 不卡电影免费在线播放一区| 国产最新精品免费| 精品一区二区三区在线观看国产| 亚洲一区二区三区在线| 亚洲免费av网站| 亚洲天堂免费在线观看视频| 欧美国产日韩a欧美在线观看| 久久网这里都是精品| 日韩欧美成人午夜| 日韩欧美国产不卡| 日韩视频国产视频| 欧美精品粉嫩高潮一区二区| 欧美精品电影在线播放| 欧美精品自拍偷拍动漫精品| 欧美视频在线播放| 欧美美女网站色| 欧美酷刑日本凌虐凌虐| 欧美一区二区三区在线| 欧美一区二区三区爱爱| 日韩一级免费一区| 欧美成人性战久久| 久久天天做天天爱综合色| 欧美精品一区二区三区蜜桃| 久久久亚洲欧洲日产国码αv| 久久久777精品电影网影网 | 亚洲.国产.中文慕字在线| 亚洲综合丁香婷婷六月香| 亚洲午夜免费福利视频| 日韩avvvv在线播放| 久久精品噜噜噜成人88aⅴ| 老汉av免费一区二区三区| 激情六月婷婷久久| 99国产欧美久久久精品| 色丁香久综合在线久综合在线观看| 精品视频资源站| 欧美一级二级在线观看| 国产日本欧美一区二区| 亚洲少妇30p| 日本特黄久久久高潮| 丰满亚洲少妇av| 91网上在线视频| 欧美大片在线观看一区| 国产三级精品在线| 亚洲一区二区三区四区五区黄 | 亚洲国产视频a| 久久不见久久见中文字幕免费| 丁香啪啪综合成人亚洲小说| 一道本成人在线| 337p日本欧洲亚洲大胆精品 | 精品噜噜噜噜久久久久久久久试看 | 粉嫩一区二区三区在线看| 色综合天天综合狠狠| 久久影音资源网| 亚洲精品视频免费看| 激情小说欧美图片| 色88888久久久久久影院野外| 日韩写真欧美这视频| 精品无人区卡一卡二卡三乱码免费卡| 成人综合在线视频| 日韩一区二区精品葵司在线|