package jef.database.routing.jdbc; import java.io.InputStream; import java.io.Reader; import java.math.BigDecimal; import java.net.URL; import java.sql.Array; import java.sql.Blob; import java.sql.Clob; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.Ref; import java.sql.SQLException; import java.sql.Time; import java.sql.Timestamp; import java.util.Calendar; /** * PreparedStatement设置参数的处理 * * @author linxuan * */ abstract class ParameterMethod { abstract void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException; static ParameterMethod setArray = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setArray(index, (Array) args[0]); } }; static ParameterMethod setAsciiStream = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setAsciiStream(index, (InputStream) args[0], (Integer) args[1]); } }; static ParameterMethod setBigDecimal = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setBigDecimal(index, (BigDecimal) args[0]); } }; static ParameterMethod setBinaryStream = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setBinaryStream(index, (InputStream) args[0], (Integer) args[1]); } }; static ParameterMethod setBlob = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setBlob(index, (Blob) args[0]); } }; static ParameterMethod setBoolean = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setBoolean(index, (Boolean) args[0]); } }; static ParameterMethod setByte = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setByte(index, (Byte) args[0]); } }; static ParameterMethod setBytes = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setBytes(index, (byte[]) args[0]); } }; static ParameterMethod setCharacterStream = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setCharacterStream(index, (Reader) args[0]); } }; static ParameterMethod setClob = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setClob(index, (Clob) args[0]); } }; static ParameterMethod setDate1 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setDate(index, (Date) args[0]); } }; static ParameterMethod setDate2 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setDate(index, (Date) args[0], (Calendar) args[1]); } }; static ParameterMethod setDouble = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setDouble(index, (Double) args[0]); } }; static ParameterMethod setFloat = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setFloat(index, (Float) args[0]); } }; static ParameterMethod setInt = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setInt(index, (Integer) args[0]); } }; static ParameterMethod setLong = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setLong(index, (Long) args[0]); } }; static ParameterMethod setNull1 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setNull(index, (Integer) args[0]); } }; static ParameterMethod setNull2 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setNull(index, (Integer) args[0], (String) args[1]); } }; static ParameterMethod setObject1 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setObject(index, (Integer) args[0]); } }; static ParameterMethod setObject2 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setObject(index, (Integer) args[0], (Integer) args[1]); } }; static ParameterMethod setObject3 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setObject(index, (Integer) args[0], (Integer) args[1], (Integer) args[2]); } }; static ParameterMethod setRef = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setRef(index, (Ref) args[0]); } }; static ParameterMethod setShort = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setShort(index, (Short) args[0]); } }; static ParameterMethod setString = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setString(index, (String) args[0]); } }; static ParameterMethod setTime1 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setTime(index, (Time) args[0]); } }; static ParameterMethod setTime2 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setTime(index, (Time) args[0], (Calendar) args[1]); } }; static ParameterMethod setTimestamp1 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setTimestamp(index, (Timestamp) args[0]); } }; static ParameterMethod setTimestamp2 = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setTimestamp(index, (Timestamp) args[0], (Calendar) args[1]); } }; static ParameterMethod setURL = new ParameterMethod() { void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setURL(index, (URL) args[0]); } }; static ParameterMethod setUnicodeStream = new ParameterMethod() { @SuppressWarnings("deprecation") void setParameter(PreparedStatement stmt, int index, Object[] args) throws SQLException { stmt.setUnicodeStream(index, (InputStream) args[0], (Integer) args[1]); } }; }