/* * Copyright 2008 biaoping.yin * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.frameworkset.common.poolman; import com.frameworkset.util.SimpleStringUtil; import com.frameworkset.util.VariableHandler; import com.frameworkset.util.VariableHandler.Variable; /** * * * <p>Title: PreparedDBUtil.java</p> * * <p>Description: 预编译参数封装对象</p> * * <p> * bboss workgroup * </p> * <p> * Copyright (c) 2007 * </p> * * @Date 2009-6-1 下午08:58:51 * @author biaoping.yin * @version 1.0 */ public class Param { /** * 定义参数对应的方法,总共35个方法 */ public static final String SET_ARRAY_INT_ARRAY = "setArray(int, Array)"; /**setAsciiStream(int i, InputStream x, int length)*/ public static final String SET_AsciiStream_INT_InputStream_INT = "setAsciiStream(int, InputStream, int)"; public static final String SET_BigDecimal_INT_BigDecimal = "setBigDecimal(int, BigDecimal)"; public static final String setBinaryStream_int_InputStream_int = "setBinaryStream(int, InputStream, int)"; public static final String setBlob_int_InputStream_int = "setBinaryStream(int, InputStream, int)"; public static final String setBlob_int_bytearray = "setBlob(int, byte[])"; public static final String setBlob_int_blob = "setBlob(int,Blob])"; public static final String setBlob_int_bytearray_String = "setBlob(int, byte[], String)"; public static final String setBlob_int_File = "setBlob(int, File)"; public static final String setBlob_int_File_String = "setBlob(int, File, String)"; public static final String setBoolean_int_boolean = "setBoolean(int, boolean)"; public static final String setByte_int_byte = "setByte(int, byte)"; public static final String setBytes_int_bytearray = "setBytes(int, byte[])"; public static final String setCharacterStream_int_Reader_int = "setCharacterStream(int, Reader, int)"; public static final String setClob_int_String = "setClob(int, String)"; public static final String setClob_int_Clob = "setClob(int, Clob)"; public static final String setClob_int_String_String = "setClob(int, String, String)"; public static final String setDate_int_sqlDate = "setDate(int, java.sql.Date)"; public static final String setDate_int_Date_Calendar = "setDate(int, Date, Calendar)"; public static final String setDate_int_utilDate = "setDate(int, java.util.Date)"; public static final String setDouble_int_double = "setDouble(int, double)"; public static final String setFloat_int_float = "setFloat(int, float)"; public static final String setInt_int_int = "setInt(int, int)"; public static final String setLong_int_long = "setLong(int, long)"; public static final String setNull_int_int = "setNull(int, int)"; public static final String setNull_int_int_String = "setNull(int, int, String)"; public static final String setObject_int_Object = "setObject(int, Object)"; public static final String setObject_int_Object_int = "setObject(int, Object, int)"; public static final String setObject_int_Object_int_int = "setObject(int, Object, int, int)"; public static final String setRef_int_Ref = "setRef(int, Ref)"; public static final String setShort_int_short = "setShort(int, short)"; public static final String setString_int_String = "setString(int, String)"; public static final String setTime_int_Time = "setTime(int, Time)"; public static final String setTime_int_Time_Calendar = "setTime(int, Time, Calendar)"; public static final String setTimestamp_int_Timestamp = "setTimestamp(int, Timestamp)"; public static final String setTimestamp_int_Timestamp_Calendar = "setTimestamp(int, Timestamp, Calendar)"; public static final String setUnicodeStream_int_InputStream_int = "setUnicodeStream(int, InputStream, int)"; public static final String setClob_int_File = "setClob(int i, File file)"; public static final String setClob_int_File_String = "setClob(int i, File file, String string)"; private String type; String method; private String charset; public String getMethod() { return method; } public void setMethod(String method) { this.method = method; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public Param clone() { Param newparam = new Param(); newparam.data = this.data; newparam.name = this.name; newparam.dataformat = this.dataformat; newparam.index = this.index; newparam.method = this.method; newparam.type = this.type; newparam.charset = this.charset; return newparam; } public Param clone(Variable variable) { if(variable == null) { return this.clone(); } Param newparam = new Param(); newparam.data = VariableHandler.evaluateVariableValue(variable, data); newparam.name = this.name; newparam.dataformat = this.dataformat; newparam.index = this.index; newparam.method = this.method; newparam.type = this.type; newparam.charset = this.charset; newparam.variable = variable; return newparam; } int index; Object data; String dataformat; String name; /** * 引用变量,适用于变量引用,list,set,map,数组以及多级 * 变量引用 */ Variable variable; public String toString() { if(variable == null) { StringBuffer ret = new StringBuffer(); ret.append("[name=").append(name) .append(",index=").append(index) .append(",value="); SimpleStringUtil.tostring(ret,data); ret.append(",dataformat=").append(dataformat) .append(",charset=").append(this.charset== null?"":charset) .append(",method=").append(method).append("]"); return ret.toString(); } else { StringBuffer ret = new StringBuffer(); ret.append("[name=").append(name) .append(",index=").append(index) .append(",value="); SimpleStringUtil.tostring(ret,data); ret.append(",variable=").append(variable.toString()) .append(",dataformat=").append(dataformat) .append(",charset=").append(this.charset== null?"":charset) .append(",method=").append(method).append("]"); return ret.toString(); } } public static String getParamType(int sqltype,boolean isnull) { if(isnull) return Param.setNull_int_int; switch(sqltype) { // case java.sql.Types. // /**setAsciiStream(int i, InputStream x, int length)*/ // static final String SET_AsciiStream_INT_InputStream_INT = "setAsciiStream(int, InputStream, int)"; case java.sql.Types.BIGINT: return SET_BigDecimal_INT_BigDecimal ; case java.sql.Types.BOOLEAN: return setBoolean_int_boolean ; case java.sql.Types.BIT: return setByte_int_byte ; case java.sql.Types.DATE: return setDate_int_sqlDate ; case java.sql.Types.DOUBLE: return setDouble_int_double ; case java.sql.Types.FLOAT: return setFloat_int_float ; case java.sql.Types.INTEGER: return setInt_int_int ; case java.sql.Types.NUMERIC: return setLong_int_long; case java.sql.Types.SMALLINT: return setShort_int_short ; case java.sql.Types.VARCHAR: return setString_int_String ; case java.sql.Types.TIME: return setTime_int_Time ; case java.sql.Types.TIMESTAMP: return setTimestamp_int_Timestamp ; default: return setObject_int_Object ; } } public String getDataformat() { return dataformat; } public void setDataformat(String dataformat) { this.dataformat = dataformat; } public String getName() { return name; } public void setName(String name) { this.name = name; } protected String getType() { return type; } protected void setType(String type) { this.type = type; } public String getCharset() { return charset; } public void setCharset(String charset) { this.charset = charset; } }