public void setStatement(PreparedStatement statement, DatabaseType databaseType, boolean timestampChangeToLong) throws SQLException {
if (this.value == null) {
statement.setNull(this.index, this.sqlType);
} else {
switch(this.sqlType) {
case -15:
case -9:
case 1:
case 12:
case 2005:
String strVal = String.valueOf(this.value);
statement.setString(this.index, strVal);
break;
case -7:
case 16:
boolean booleanVal = (Boolean)this.value; //tinyint(1) 类型的表设计字段直接进入该case,由于接收到的消息中的数据未0或者1,直接在该未知报类转换异常。
statement.setBoolean(this.index, booleanVal);
break;
case -6:
int val2 = (Integer)this.value;
statement.setInt(this.index, val2);
break;
case -5:
long longVal = (Long)this.value;
statement.setLong(this.index, longVal);
break;
case 2:
this.setStatementDataTypeNumeric(statement);
break;
case 3:
this.setStatementDataTypeDecimal(statement, databaseType, timestampChangeToLong);
break;
case 4:
int val = (Integer)this.value;
statement.setInt(this.index, val);
break;
case 5:
int val1 = (Integer)this.value;
statement.setInt(this.index, val1);
break;
case 6:
float floatVal = (Float)this.value;
statement.setFloat(this.index, floatVal);
break;
case 8:
double doubelVal = (Double)this.value;
statement.setDouble(this.index, doubelVal);
break;
case 91:
this.setStatementDataTypeDate(statement, databaseType);
break;
case 92:
Date timeVal = (Date)this.value;
Time sqlTime = new Time(timeVal.getTime());
statement.setTime(this.index, sqlTime);
break;
case 93:
this.setStatementDataTypeTimestamp(statement, timestampChangeToLong);
break;
default:
throw new ConsumeException("sqlType " + this.sqlType + " is not support");
}
}
}