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

📄 commonvalue.java

📁 codebook!
💻 JAVA
字号:
//----------------------------------------------------------------------------//// Module:      CommonValue.java//// Description: Object that represents a single data value.  All data//              coercion is handled here//// Author:      Karl Moss//// Copyright:   (C) 1996,1997 Karl Moss.  All rights reserved.//              You may study, use, modify and distribute this example//              for any purpose, provided that this copyright notice//              appears in all copies.  This example is provided WITHOUT//              WARRANTY either expressed or implied.//----------------------------------------------------------------------------package jdbc.SimpleText;import java.sql.*;public class CommonValue    extends         Object{    //------------------------------------------------------------------------    // Constructors    //------------------------------------------------------------------------    public CommonValue()    {        data = null;    }    public CommonValue(String s)    {        data = (Object) s;        internalType = Types.VARCHAR;    }    public CommonValue(int i)    {        data = (Object) new Integer(i);        internalType = Types.INTEGER;    }    public CommonValue(Integer i)    {        data = (Object) i;        internalType = Types.INTEGER;    }    public CommonValue(byte b[])    {        data = (Object) b;        internalType = Types.VARBINARY;    }    //------------------------------------------------------------------------    // isNull    // returns true if the value is null    //------------------------------------------------------------------------    public boolean isNull()    {        return (data == null);    }    //------------------------------------------------------------------------    // getMethods    //------------------------------------------------------------------------    // Attempt to convert the data into a String.  All data types    // should be able to be converted    public String getString()        throws SQLException    {        String s;        // A null value always returns null        if (data == null) {            return null;        }        switch(internalType) {        case Types.VARCHAR:            s = (String) data;            break;        case Types.INTEGER:            s = ((Integer) data).toString();            break;        case Types.VARBINARY:            {                // Convert a byte array into a String of hex digits                byte b[] = (byte[]) data;                int len = b.length;                String digits = "0123456789ABCDEF";                char c[] = new char[len * 2];                for (int i = 0; i < len; i++) {                    c[i * 2] = digits.charAt((b[i] >> 4) & 0x0F);                    c[(i * 2) + 1] = digits.charAt(b[i] & 0x0F);                }                s = new String(c);            }            break;        default:            throw new SQLException("Unable to convert data type to String: " +                                internalType);        }        return s;    }    // Attempt to convert the data into an int    public int getInt()        throws SQLException    {        int i = 0;        // A null value always returns zero        if (data == null) {            return 0;        }        switch(internalType) {        case Types.VARCHAR:            i = (Integer.valueOf((String) data)).intValue();            break;        case Types.INTEGER:            i = ((Integer) data).intValue();            break;        default:            throw new SQLException("Unable to convert data type to String: " +                                internalType);        }        return i;    }    // Attempt to convert the data into a byte array    public byte[] getBytes()        throws SQLException    {        byte b[] = null;        // A null value always returns null        if (data == null) {            return null;        }        switch(internalType) {        case Types.VARCHAR:            {                // Convert the String into a byte array.  The String must                // contain an even number of hex digits                String s = ((String) data).toUpperCase();                String digits = "0123456789ABCDEF";                int len = s.length();                int index;                if ((len % 2) != 0) {                    throw new SQLException(                            "Data must have a even number of hex digits");                }                b = new byte[len / 2];                for (int i = 0; i < (len / 2); i++) {                    index = digits.indexOf(s.charAt(i * 2));                    if (index < 0) {                        throw new SQLException("Invalid hex digit");                    }                    b[i] = (byte) (index << 4);                    index = digits.indexOf(s.charAt((i * 2) + 1));                    if (index < 0) {                        throw new SQLException("Invalid hex digit");                    }                    b[i] += (byte) index;                }            }            break;        case Types.VARBINARY:            b = (byte[]) data;            break;        default:            throw new SQLException("Unable to convert data type to byte[]: " +                                internalType);        }        return b;    }    protected Object data;    protected int internalType;}

⌨️ 快捷键说明

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