设为首页 加入收藏

TOP

mybatis oracle BLOB类型字段保存与读取(一)
2015-11-21 01:39:31 来源: 作者: 【 】 浏览:0
Tags:mybatis oracle BLOB 类型 保存 读取
一、BLOB字段
?
BLOB是指二进制大对象也就是英文Binary Large Object的所写,而CLOB是指大字符对象也就是英文Character Large Object的所写。其中BLOB是用来存储大量二进制数据的;CLOB用来存储大量文本数据。BLOB通常用来保存图片、文件等二进制类型的数据。
?
二、使用mybatis操作blob
?
1、表结构如下:
?
?
create table BLOB_FIELD
(
? ?ID ? ? ? ? ? ? ? ? ? VARCHAR2(64 BYTE) ? ?not null,
? ?TAB_NAME ? ? ? ? ? ? VARCHAR2(64 BYTE) ? ?not null,
? ?TAB_PKID_VALUE ? ? ? VARCHAR2(64 BYTE) ? ?not null,
? ?CLOB_COL_NAME ? ? ? ?VARCHAR2(64 BYTE) ? ?not null,
? ?CLOB_COL_VALUE ? ? ? CLOB,
? ?constraint PK_BLOB_FIELD primary key (ID)
);
?
2、实体代码如下:
?
?
?1 package com.test.entity;
?2?
?3 import java.sql.Clob;?
?4?
?5 /**
?6 ?* 大字段?
?7 ?*/
?8 public class BlobField {?
?9?
10 ? ? private String tabName;// 表名
11 ? ? private String tabPkidValue;// 主键值
12 ? ? private String blobColName;// 列名
13 ? ? private byte[] blobColValue;// 列值 clob类型
14?
15 ? ? public String getTabName() {
16 ? ? ? ? return tabName;
17 ? ? }
18?
19 ? ? public void setTabName(String tabName) {
20 ? ? ? ? this.tabName = tabName;
21 ? ? }
22?
23 ? ? public String getTabPkidValue() {
24 ? ? ? ? return tabPkidValue;
25 ? ? }
26?
27 ? ? public void setTabPkidValue(String tabPkidValue) {
28 ? ? ? ? this.tabPkidValue = tabPkidValue;
29 ? ? }
30?
31 ? ? public String getBlobColName() {
32 ? ? ? ? return blobColName;
33 ? ? }
34?
35 ? ? public void setBlobColName(String blobColName) {
36 ? ? ? ? this.blobColName = blobColName;
37 ? ? }
38?
39 ? ? public byte[] getBlobColValue() {
40 ? ? ? ? return blobColValue;
41 ? ? }
42?
43 ? ? public void setBlobColValue(byte[] blobColValue) {
44 ? ? ? ? this.blobColValue = blobColValue;
45 ? ? }
46?
47 }
?
3、mybatis sql代码如下:
?
?
?1
?2
?3
?4?
?5 ? ?
?6 ? ? ? ? a.ID AS id,
?7 ? ? ? ? a.TAB_NAME AS tabName,
?8 ? ? ? ? a.TAB_PKID_VALUE AS tabPkidValue,
?9 ? ? ? ? a.BLOB_COL_NAME AS blobColName,
10 ? ? ? ? a.BLOB_COL_VALUE AS blobColValue
11 ? ?
12?
13 ? ?
14 ? ?
15?
16 ? ?
23?
24 ? ? ?
30?
31 ? ?
32 ? ? ? ? INSERT INTO BLOB_FIELD(
33 ? ? ? ? ID ,
34 ? ? ? ? TAB_NAME ,
35 ? ? ? ? TAB_PKID_VALUE ,
36 ? ? ? ? BLOB_COL_NAME ,
37 ? ? ? ? BLOB_COL_VALUE
38 ? ? ? ? ) VALUES (
39 ? ? ? ? #{id},
40 ? ? ? ? #{tabName},
41 ? ? ? ? #{tabPkidValue},
42 ? ? ? ? #{blobColName},
43 ? ? ? ? #{blobColValue,jdbcType=BLOB}
44 ? ? ? ? )
45 ? ?
46?
47 ? ?
48 ? ? ? ? UPDATE BLOB_FIELD SET
49 ? ? ? ? TAB_NAME = #{tabName},
50 ? ? ? ? TAB_PKID_VALUE = #{tabPkidValue},
51 ? ? ? ? BLOB_COL_NAME = #{blobColName},
52 ? ? ? ? BLOB_COL_VALUE = #{blobColValue}
53 ? ? ? ? WHERE ID = #{id}
54 ? ?
55 ? ?
56 ? ? ? ? DELETE FROM BLOB_FIELD?
57 ? ? ? ? WHERE ID = #{id}
58 ? ?
59 ? ??
60
?
3、controller代码如下:
?
a、保存BLOB字段代码
?
?
?1 /**
?2 ? ? ?* 附件上传
?3 ? ? ?*?
?4 ? ? ?* @param testId
?5 ? ? ?* ? ? ? ? ? ?主表Id
?6 ? ? ?* @param request
?7 ? ? ?* @return
?8 ? ? ?* @throws UnsupportedEncodingException
?9 ? ? ?*/
10 ? ? @RequiresPermissions("exc:exceptioninfo:feedback")
11 ? ? @RequestMapping(value = "attachment", method = RequestMethod.POST)
12 ? ? @ResponseBody
13 ? ? public Map uploadAttachment(@RequestParam(value = "testId", required = true) String testId,?
14?
15 HttpServlet
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇rac_/home/oracle权限过大引发的.. 下一篇Dapper完美兼容Oracle 执行存储过..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: