1. 查询BLOB类型数据
1. 定义⼀个字节数组接收
⽐如说可以定义⼀个接收的实体类
@Data
public class KnowInfoDto { /** * Id */
private String id; /** * 内容 */
private String legalContent; /**
* 内容byte */
private byte[] legalContentByte;}
2. 再到xml⾥写⼀个resultMap
需要注意的就是这个typeHandler ,要是BlobTypeHandler类型的。之后⽤这个byte[]z字段去接收。3. 在转化为String类型
接收到之后需要转换成String,可能会乱码。所以我们需要判断编码类型,默认为utf-8.
/**
* 获取⽂件编码类型 *
* @param bytes ⽂件bytes数组 * @return 编码类型 */
public static String getEncoding(byte[] bytes) { String defaultEncoding = \"UTF-8\";
UniversalDetector detector = new UniversalDetector(null); detector.handleData(bytes, 0, bytes.length); detector.dataEnd();
String encoding = detector.getDetectedCharset(); detector.reset();
if (encoding == null) {
encoding = defaultEncoding; }
return encoding; }
再⽤new String()z转成String。
try {
KnowInfoDto.setLegalContent(new String(KnowInfoDto.getLegalContentByte(),getEncoding(KnowInfoDto.getLegalContentByte()))); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
2. 查询CLOB类型数据
1. 实体类中⽤String接收就可以了
@Data
public class KnowInfoDto { /** * Id */
private String id;
/** * 内容 */
private String legalContent;}
2. xml ⾥要设置⼀下typeHandler
因篇幅问题不能全部显示,请点此查看更多更全内容