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的更多相关文章

  1. mybatis 处理CLOB/BLOB类型数据

    BLOB和CLOB都是大字段类型. BLOB是按二进制来存储的,而CLOB是可以直接存储文字的. 通常像图片.文件.音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去.文章或者是较长的文字 ...

  2. 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 ...

  3. spring + mybatis 存取clob

    存的时候会比较麻烦,需要使用select for update的方式更新数据,如果原来没有这一条数据,还需要先新增,新增的时候需要将clob字段存为oracle.sql.CLOB.empty_lob( ...

  4. 深入浅出JDBC-操作时间与大对象(Clob/Blob)

    一.时间(Date.Time.Timestamp) java.sql.Date/java.sql.Time/java.sql.Timestamp extends java.util.Date publ ...

  5. struts2前端页面读取Clob/BLOB

    在通过Struts2标签显示对象的Clob属性值的时候.显示的并非CLOB或者BLOB的内容,而是显示的toString方法的值 比如我在实体中的注解为: @Lob @Column(name = &q ...

  6. Oracle jdbc 插入 clob blob

    Oracle 使用 clob 与 blob 插入一些比较庞大的文本或者文件,JDBC 插入时 也比较简单 表结构 CREATE TABLE test_info ( user_id int NOT NU ...

  7. JDBC 复习3 存取Oracle大数据 clob blob

    1 目录结构记得导包咯 mysql oracle 2 代码,DBUtil工具类见前面的随笔博文 package dbex.mysql; import java.io.BufferedReader; i ...

  8. oracle clob blob dblink

    Create global temporary table temp on commit preserve rows as select * from abc@xxx select * from te ...

  9. 小峰mybatis(1) 处理clob,blob等。。

    一.mybatis处理CLOB.BLOB类型数据 CLOB:大文本类型:小说啊等大文本的:对应数据库类型不一致,有long等: BLOB:二进制的,图片:电影.音乐等二进制的: 在mysql中: bl ...

随机推荐

  1. MySQL报错: Character set ‘utf8mb4‘ is not a compiled character set and is not specified in the ‘/usr/share/mysql/charsets/Index.xml‘ file

    由于日常程序使用了字符集utf8mb4,为了避免每次更新时,set names utf8mb4,就把配置文件改了,如下: [root@~]# vim /etc/my.cnf #my.cnf [clie ...

  2. .tar.xz文件的解压方法

    废话不多说: 直接看 方法一: tar -xvJf ***.tar.gz 方法二: 先减压成 .tar 格式的文件, 再解压 .tar #xz是一个工具, 系统中没有安装,需要下载 xz -d *** ...

  3. 基于nginx的WebSocket反向代理

    系统:windows 版本:nginx 1.4.5 配置内容: location ~ \.do$ {             proxy_pass   http://192.168.20.102:80 ...

  4. war的创建

  5. JAVA之复制数组

    //复制数组 //Arrays.copyOf(arr, 5) //arr:要复制的对象,5为新数组的长度 import java.util.Arrays; public class Cope { pu ...

  6. 社会单位消防安全户籍化管理系统——半自动提交V1.0版本

    社会单位消防安全户籍化管理系统——半自动提交V1.0版本 首先先上代码,开发这个小程序其实是用来帮助同事完成一项每天都做的繁琐事件,以往需要花费十分钟做这件事情,现在就是傻瓜式,点几下鼠标就好了.本来 ...

  7. 彻底明确怎样设置minSdkVersion和targetSdkVersion

    minSdkVersion和targetSdkVersion相信非常多人都不太理解.我在网上也看了很多关于这两者差别的文章,感觉说的都非常模糊.直到我在stackOverFlow看到Android M ...

  8. kickstart-E

    A题 简答模拟题 #include <iostream> #include<stdio.h> #include <set> #include <algorit ...

  9. 调整LaTeX文档页面的大小

    看下面这张图片便一目了然!!!       借助 geometry 包,可以很方便地调整页面大小,常用的参数如图所示,这些参数都可以通过LateX支持的单位(mm, cm, pt, in)去重新设置. ...

  10. 【Android】让Python在Android系统上飞一会儿

    第一节 在手机上配置Python运行环境 1.下载和安装 Scripting Layer for Android (SL4A) Scripting Layer for Android (SL4A) 是 ...