下面列出了怎么用org.hibernate.type.BlobType的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void nullSafeSet(PreparedStatement preparedStatement, Object value, int index, SharedSessionContractImplementor session) throws HibernateException, SQLException {
if (value != null) {
String json;
synchronized (value) {
json = JsonUtility.object2String(value);
}
byte[] bytes = json.getBytes(StringUtility.CHARSET);
byte[] zip = PressUtility.zip(bytes, 5);
ByteArrayInputStream inputStream = new ByteArrayInputStream(zip);
preparedStatement.setBinaryStream(index, inputStream);
} else {
preparedStatement.setNull(index, BlobType.INSTANCE.sqlType());
}
}
private static boolean isLob(Integer sqlType, String sqlTypeName) {
if ( sqlType != null ) {
return ClobType.INSTANCE.getSqlTypeDescriptor().getSqlType() == sqlType ||
BlobType.INSTANCE.getSqlTypeDescriptor().getSqlType() == sqlType ||
NClobType.INSTANCE.getSqlTypeDescriptor().getSqlType() == sqlType;
}
else if ( sqlTypeName != null ) {
return ClobType.INSTANCE.getName().equalsIgnoreCase( sqlTypeName ) ||
BlobType.INSTANCE.getName().equalsIgnoreCase( sqlTypeName ) ||
NClobType.INSTANCE.getName().equalsIgnoreCase( sqlTypeName );
}
return false;
}
@Override
public int[] sqlTypes() {
return new int[] { BlobType.INSTANCE.sqlType() };
}
@Override
public String convert(Blob source) {
return BlobType.INSTANCE.toString(source);
}