您的当前位置:首页ORACL数据库通过mybatis查询BLOB或CLOB类型数据

ORACL数据库通过mybatis查询BLOB或CLOB类型数据

2020-04-11 来源:爱问旅游网
ORACL数据库通过mybatis查询BLOB或CLOB类型数据

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

因篇幅问题不能全部显示,请点此查看更多更全内容