背景
最近开发一个BS架构系统,Oracle数据库,需要接入手写板签字审批,手写板接口直接返回签名原笔迹图片的Base64码,系统实现图片的保存和显示。
开始尝试用Blob类型存储,需要以流的形式存取,折腾半天失败了,最后换成CLOB成功了,在此做个记录,备查。
数据库字段
“SIGNATURE” CLOB,
mybatis映射xml文件
部分代码:
<insert id="insert">
INSERT INTO hz_flow_check(
id,
signature
) VALUES (
#{id},
#{signature,jdbcType=CLOB}
)
</insert>
<resultMap id="fcResultMap" type="HzFlowCheck">
<result column="signature" property="signature" jdbcType="CLOB" />
</resultMap>
<select id="findList" resultMap="fcResultMap" >
SELECT
<include refid="hzFlowCheckColumns"/>
FROM hz_flow_check a
</select>
实体类
局部代码:
private String signature; //签名
public String getSignature() {
return signature;
}
public void setSignature(String signature) {
this.signature = signature;
}
service
直接传递String类型值,无需处理,略。
前台页面
img标签的src属性赋值:Data URI scheme前缀,后台返回的Base64编码
<img src="data:image/jpg;base64,${check.signature}" width="170" height="70"/>