本人在使用canal做数据同步,采用tcp模式,自己写客户端时,遇到数据库存储类型不匹配的问题。简单记录一下。
public class TypeUtils {
/**
* @param string
* @param targetType
* @return Object
* 字符串转其他指定类型
*/
public static Object StringToTarget(String string, String targetType) {
if (!StringUtils.isEmpty(string) && !StringUtils.isEmpty(targetType)) {
if (targetType.equalsIgnoreCase("double")) {
return Double.parseDouble(string);
} else if (targetType.equalsIgnoreCase("long")) {
return Long.parseLong(string);
} else if (targetType.equalsIgnoreCase("float")) {
return Float.parseFloat(string);
} else if (targetType.equalsIgnoreCase("short")) {
return Short.parseShort(string);
} else if (targetType.equalsIgnoreCase("boolean")) {
return Boolean.parseBoolean(string);
} else if (targetType.contains("int")) {
return Integer.parseInt(string);
} else {
return string;
}
}
return -1;
}
}