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

📄 sqljdbcutil.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    }                    //alt 1: binaryInput = rs.getBinaryStream(ind);                    //alt 2: Blob blobLocator = rs.getBlob(ind);                    //if (blobLocator != null) {                    //    binaryInput = blobLocator.getBinaryStream();                    //}                    if (binaryInput != null) {                        ObjectInputStream in = null;                        try {                            in = new ObjectInputStream(binaryInput);                            obj = in.readObject();                        } catch (IOException ex) {                            throw new GenericDataSourceException("Unable to read BLOB data from input stream while getting value : " + curField.getName() + " [" + curField.getColName() + "] (" + ind + "): " + ex.toString(), ex);                        } catch (ClassNotFoundException ex) {                            throw new GenericDataSourceException("Class not found: Unable to cast BLOB data to an Java object while getting value : " + curField.getName() + " [" + curField.getColName() + "] (" + ind + "): " + ex.toString(), ex);                        } finally {                            if (in != null) {                                try {                                    in.close();                                } catch (IOException e) {                                    throw new GenericDataSourceException("Unable to close binary input stream while getting value : " + curField.getName() + " [" + curField.getColName() + "] (" + ind + "): " + e.toString(), e);                                }                            }                        }                    }                    binaryInput = null;                    entity.dangerousSetNoCheckButFast(curField, obj);                    break;                case 12:                    entity.dangerousSetNoCheckButFast(curField, rs.getBlob(ind));                    break;                case 13:                    entity.dangerousSetNoCheckButFast(curField, rs.getClob(ind));                    break;                case 14:                case 15:                    entity.dangerousSetNoCheckButFast(curField, rs.getObject(ind));                    break;                }            } else {                switch (typeValue) {                case 5:                    int intValue = rs.getInt(ind);                    if (rs.wasNull()) {                        entity.dangerousSetNoCheckButFast(curField, null);                    } else {                        entity.dangerousSetNoCheckButFast(curField, new Integer(intValue));                    }                    break;                case 6:                    long longValue = rs.getLong(ind);                    if (rs.wasNull()) {                        entity.dangerousSetNoCheckButFast(curField, null);                    } else {                        entity.dangerousSetNoCheckButFast(curField, new Long(longValue));                    }                    break;                case 7:                    float floatValue = rs.getFloat(ind);                    if (rs.wasNull()) {                        entity.dangerousSetNoCheckButFast(curField, null);                    } else {                        entity.dangerousSetNoCheckButFast(curField, new Float(floatValue));                    }                    break;                case 8:                    double doubleValue = rs.getDouble(ind);                    if (rs.wasNull()) {                        entity.dangerousSetNoCheckButFast(curField, null);                    } else {                        entity.dangerousSetNoCheckButFast(curField, new Double(doubleValue));                    }                    break;                case 9:                    BigDecimal bigDecimalValue = rs.getBigDecimal(ind);                    if (rs.wasNull()) {                        entity.dangerousSetNoCheckButFast(curField, null);                    } else {                        entity.dangerousSetNoCheckButFast(curField, bigDecimalValue);                    }                    break;                case 10:                    boolean booleanValue = rs.getBoolean(ind);                    if (rs.wasNull()) {                        entity.dangerousSetNoCheckButFast(curField, null);                    } else {                        entity.dangerousSetNoCheckButFast(curField, new Boolean(booleanValue));                    }                    break;                }            }        } catch (SQLException sqle) {            throw new GenericDataSourceException("SQL Exception while getting value : " + curField.getName() + " [" + curField.getColName() + "] (" + ind + ")", sqle);        }    }    public static void setValue(SQLProcessor sqlP, ModelField modelField, GenericEntity entity, ModelFieldTypeReader modelFieldTypeReader) throws GenericEntityException {        Object fieldValue = entity.dangerousGetNoCheckButFast(modelField);        setValue(sqlP, modelField, entity.getEntityName(), fieldValue, modelFieldTypeReader);    }    public static void setValue(SQLProcessor sqlP, ModelField modelField, String entityName, Object fieldValue, ModelFieldTypeReader modelFieldTypeReader) throws GenericEntityException {        ModelFieldType mft = modelFieldTypeReader.getModelFieldType(modelField.getType());        if (mft == null) {            throw new GenericModelException("GenericDAO.getValue: definition fieldType " + modelField.getType() + " not found, cannot setValue for field " +                    entityName + "." + modelField.getName() + ".");        }                // if the value is the GenericEntity.NullField, treat as null        if (fieldValue == GenericEntity.NULL_FIELD) {            fieldValue = null;        }        String fieldType = mft.getJavaType();        if (fieldValue != null) {            if (!ObjectType.instanceOf(fieldValue, fieldType)) {                // this is only an info level message because under normal operation for most JDBC                // drivers this will be okay, but if not then the JDBC driver will throw an exception                // and when lower debug levels are on this should help give more info on what happened                Class fieldClass = fieldValue.getClass();                String fieldClassName = fieldClass.getName();                if (Debug.verboseOn()) Debug.logVerbose("type of field " + entityName + "." + modelField.getName() +                        " is " + fieldClassName + ", was expecting " + mft.getJavaType() + "; this may " +                        "indicate an error in the configuration or in the class, and may result " +                        "in an SQL-Java data conversion error. Will use the real field type: " +                        fieldClassName + ", not the definition.", module);                fieldType = fieldClassName;            }        }        try {            int typeValue = getType(fieldType);            switch (typeValue) {            case 1:                sqlP.setValue((String) fieldValue);                break;            case 2:                sqlP.setValue((java.sql.Timestamp) fieldValue);                break;            case 3:                sqlP.setValue((java.sql.Time) fieldValue);                break;            case 4:                sqlP.setValue((java.sql.Date) fieldValue);                break;            case 5:                sqlP.setValue((java.lang.Integer) fieldValue);                break;            case 6:                sqlP.setValue((java.lang.Long) fieldValue);                break;            case 7:                sqlP.setValue((java.lang.Float) fieldValue);                break;            case 8:                sqlP.setValue((java.lang.Double) fieldValue);                break;            case 9:                sqlP.setValue((java.math.BigDecimal) fieldValue);                break;            case 10:                sqlP.setValue((java.lang.Boolean) fieldValue);                break;            case 11:                sqlP.setBinaryStream(fieldValue);                break;            case 12:                sqlP.setValue((java.sql.Blob) fieldValue);                break;            case 13:                sqlP.setValue((java.sql.Clob) fieldValue);                break;            case 14:                sqlP.setValue(new java.sql.Date(((java.util.Date) fieldValue).getTime()));                break;            case 15:                sqlP.setValue((java.util.Collection) fieldValue);                break;            }        } catch (GenericNotImplementedException e) {            throw new GenericNotImplementedException("Not Implemented Exception while setting value on field [" + modelField.getName() + "] of entity " + entityName + ": " + e.toString(), e);        } catch (SQLException sqle) {            throw new GenericDataSourceException("SQL Exception while setting value on field [" + modelField.getName() + "] of entity " + entityName + ": ", sqle);        }    }    protected static Map fieldTypeMap = FastMap.newInstance();    static {        fieldTypeMap.put("java.lang.String", new Integer(1));        fieldTypeMap.put("String", new Integer(1));        fieldTypeMap.put("java.sql.Timestamp", new Integer(2));        fieldTypeMap.put("Timestamp", new Integer(2));        fieldTypeMap.put("java.sql.Time", new Integer(3));        fieldTypeMap.put("Time", new Integer(3));        fieldTypeMap.put("java.sql.Date", new Integer(4));        fieldTypeMap.put("Date", new Integer(4));        fieldTypeMap.put("java.lang.Integer", new Integer(5));        fieldTypeMap.put("Integer", new Integer(5));        fieldTypeMap.put("java.lang.Long", new Integer(6));        fieldTypeMap.put("Long", new Integer(6));        fieldTypeMap.put("java.lang.Float", new Integer(7));        fieldTypeMap.put("Float", new Integer(7));        fieldTypeMap.put("java.lang.Double", new Integer(8));        fieldTypeMap.put("Double", new Integer(8));        fieldTypeMap.put("java.math.BigDecimal", new Integer(9));        fieldTypeMap.put("BigDecimal", new Integer(9));        fieldTypeMap.put("java.lang.Boolean", new Integer(10));        fieldTypeMap.put("Boolean", new Integer(10));                fieldTypeMap.put("java.lang.Object", new Integer(11));        fieldTypeMap.put("Object", new Integer(11));        fieldTypeMap.put("java.sql.Blob", new Integer(12));        fieldTypeMap.put("Blob", new Integer(12));        fieldTypeMap.put("java.sql.Clob", new Integer(13));        fieldTypeMap.put("Clob", new Integer(13));        fieldTypeMap.put("java.util.Date", new Integer(14));        // all of these treated as Collection        fieldTypeMap.put("java.util.ArrayList", new Integer(15));        fieldTypeMap.put("java.util.HashSet", new Integer(15));        fieldTypeMap.put("java.util.LinkedHashSet", new Integer(15));        fieldTypeMap.put("java.util.LinkedList", new Integer(15));    }    public static int getType(String fieldType) throws GenericNotImplementedException {        Integer val = (Integer) fieldTypeMap.get(fieldType);        if (val == null) {            throw new GenericNotImplementedException("Java type " + fieldType + " not currently supported. Sorry.");        }        return val.intValue();    }    public static void addValueSingle(StringBuffer buffer, ModelField field, Object value, List params) {        if (field != null) {            buffer.append('?');        } else {            buffer.append('\'').append(value).append('\'');        }        if (field != null && params != null) params.add(new EntityConditionParam(field, value));    }    public static void addValue(StringBuffer buffer, ModelField field, Object value, List params) {        if (value instanceof Collection) {            buffer.append("( ");            Iterator it = ((Collection) value).iterator();            while (it.hasNext()) {                Object thisValue = it.next();                addValueSingle(buffer, field, thisValue, params);                if (it.hasNext()) buffer.append(", ");            }            buffer.append(" )");        } else {            addValueSingle(buffer, field, value, params);        }    }}

⌨️ 快捷键说明

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