myBatis之Clob & Blob
1. 表结构

1.1 在Mysql中的数据类型,longblob --> blob, longtext --> clob
2. 配置文件, 请参考 myBatis之入门示例
3. LOB.java
package com.blueStarWei.entity;
public class LOB {
private Integer id;
private byte[] picture;//BLOb --> byte[]
private String remark;//CLOB --> String
//getter & setter method
//toString{No picture}
}
3.1 在Java中数据类型: byte[] --> BLOb , String --> CLOB
4. LOBMapper.java
package com.blueStarWei.mappers;
import com.blueStarWei.entity.LOB;
public interface LOBMapper {
void insert(LOB lob);
LOB getLOBByID(Integer id);
}
5. LOBMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.blueStarWei.mappers.LOBMapper"> <insert id="insert" parameterType="LOB">
insert into t_lob values(null,#{picture},#{remark});
</insert> <select id="getLOBByID" parameterType="Integer" resultMap="LobResult">
select * from t_lob where id = #{id};
</select> <resultMap type="LOB" id="LobResult">
<id property="id" column="id"/>
<result property="picture" column="picture"/>
<result property="remark" column="remark"/>
</resultMap> </mapper>
6. TestLOB.java
package com.blueStarWei.test; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; import org.apache.ibatis.session.SqlSession;
import org.junit.Test; import com.blueStarWei.entity.LOB;
import com.blueStarWei.mappers.LOBMapper;
import com.blueStarWei.utils.SqlSessionFactoryUtil; public class TestLOB { @Test
public void testInsert() {
SqlSession session = SqlSessionFactoryUtil.openSession();
LOBMapper mapper = session.getMapper(LOBMapper.class); LOB lob = new LOB();
lob.setRemark("long text for clob...");
try {
FileInputStream in = new FileInputStream(new File("C:/Users/msi/Pictures/Camera Roll/Happy.png"));
byte[] picture = new byte[in.available()];
in.read(picture);
in.close();
lob.setPicture(picture);
} catch (Exception e) {
e.printStackTrace();
} mapper.insert(lob);
session.commit();
session.close();
} @Test
public void testGetLob() {
SqlSession session = SqlSessionFactoryUtil.openSession();
LOBMapper mapper = session.getMapper(LOBMapper.class);
LOB lob = mapper.getLOBByID(6);
System.out.println(lob); byte[] picture = lob.getPicture();
File file = new File("C:/Users/msi/Pictures/Camera Roll/Happy_copy.png");
try {
FileOutputStream out = new FileOutputStream(file);
out.write(picture);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
7.日志
7.1 表数据

7.2 TestLOB输出

7.3 生成图片

8.总结:
Blob & Clob 就是通过流进行读写操作
更多内容,请访问:http://www.cnblogs.com/BlueStarWei/
myBatis之Clob & Blob的更多相关文章
- mybatis 处理CLOB/BLOB类型数据
BLOB和CLOB都是大字段类型. BLOB是按二进制来存储的,而CLOB是可以直接存储文字的. 通常像图片.文件.音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去.文章或者是较长的文字 ...
- MyBatis(3.2.3) - Handling the CLOB/BLOB types
MyBatis provides built-in support for mapping CLOB/BLOB type columns. Assume we have the following t ...
- spring + mybatis 存取clob
存的时候会比较麻烦,需要使用select for update的方式更新数据,如果原来没有这一条数据,还需要先新增,新增的时候需要将clob字段存为oracle.sql.CLOB.empty_lob( ...
- 深入浅出JDBC-操作时间与大对象(Clob/Blob)
一.时间(Date.Time.Timestamp) java.sql.Date/java.sql.Time/java.sql.Timestamp extends java.util.Date publ ...
- struts2前端页面读取Clob/BLOB
在通过Struts2标签显示对象的Clob属性值的时候.显示的并非CLOB或者BLOB的内容,而是显示的toString方法的值 比如我在实体中的注解为: @Lob @Column(name = &q ...
- Oracle jdbc 插入 clob blob
Oracle 使用 clob 与 blob 插入一些比较庞大的文本或者文件,JDBC 插入时 也比较简单 表结构 CREATE TABLE test_info ( user_id int NOT NU ...
- JDBC 复习3 存取Oracle大数据 clob blob
1 目录结构记得导包咯 mysql oracle 2 代码,DBUtil工具类见前面的随笔博文 package dbex.mysql; import java.io.BufferedReader; i ...
- oracle clob blob dblink
Create global temporary table temp on commit preserve rows as select * from abc@xxx select * from te ...
- 小峰mybatis(1) 处理clob,blob等。。
一.mybatis处理CLOB.BLOB类型数据 CLOB:大文本类型:小说啊等大文本的:对应数据库类型不一致,有long等: BLOB:二进制的,图片:电影.音乐等二进制的: 在mysql中: bl ...
随机推荐
- nginx安装编译参数
- xpath 根据根节点找数据
- Git 在webstrom上安装git
Git下载地址:https://git-scm.com/download/win 用webstorm迁入迁出代码时,首先要先下载git,网址一搜就可以搜到,然后开始配置webstorm,打开webst ...
- Es6模块语法笔记
/** * Created by Administrator on 2017/4/15. */ /*---------------------export命令--------------------- ...
- 理解call及apply
转载自:http://www.zhihu.com/question/20289071 //call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改 ...
- 自定义Web框架
http协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本 ...
- cf1144G 将串分解成单调递增和递减子串(贪心)
这算哪门子dp.. 具体做法就是贪心,建立两个vector存递增序列递减序列,操作过程中a可以合法地匀一个给b 就是判断第i个数放在递增序列里还是放在递减序列里,需要根据后面的数来进行决策 #incl ...
- hdu4003
/*依赖背包的通常做法就是对于每个结点,先处理处其所有子节点的dp,然后对于当前结点进行分组背包dp即可 还是依赖背包问题,dp[i][j]表示结点i的子树用了j个机器人的搜索代价 边界条件,如果某个 ...
- 20165314 2016-2017-2 《Java程序设计》第3周学习总结
20165314 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 类体包含成员变量和域变量 局部变量只在方法内有效 对象的创建以及对象对自己变量和方法通过用. ...
- linux 将自己的服务添加到系统service服务
前言 我们在linux上要启动一个程序得时候, 往往都是要写一堆路径, 找到要启动得服务程序, 再用 ./*** 启动服务. 那么我们有没有快速启动方法吗, 答案是肯定得 service 介绍 官方介 ...