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. Memcached简介及环境安装

    Memcached简介及环境安装 author:SimpleWu 简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga ...

  2. Mybait缓存机制

    MyBatis同大多数ORM框架一样,提供了一级缓存和二级缓存的支持. 一级缓存:其作用域为session范围内,当session执行flush或close方法后,一级缓存会被清空. 二级缓存:二级缓 ...

  3. 编辑后保留原URl搜索条件

    首先需要知道的一个知识点: 1.request.GET是一个QueryDict类型的,要想取出?后面的结构就用request.GET.urlencode() 2.request.GET默认是不可修改的 ...

  4. 小学生都看得懂的C语言入门(2): 判别 循环的一些应用实例

    1.bool 类型 定义bool类型之前需要导入#include <stdbool.h> #include <stdio.h> #include <stdbool.h&g ...

  5. vue-cli3.0 使用postcss-plugin-px2rem(推荐)和 postcss-pxtorem(postcss-px2rem)自动转换px为rem 的配置方法;

    如何在vue-cli3.0中使用postcss-plugin-px2rem 插件 插件的作用是 自动将vue项目中的px转换为rem . 为什么这三个中要推荐  postcss-plugin-px2r ...

  6. Windows安装MongoDB

    一.简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点 模 ...

  7. 论文阅读笔记二十七:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(CVPR 2016)

    论文源址:https://arxiv.org/abs/1506.01497 tensorflow代码:https://github.com/endernewton/tf-faster-rcnn 室友对 ...

  8. Eclipes导入工程

    1.在eclipes中导入其他的一些工程后往往会出错,修改意见是 在project.properties该文件下修改 这个target是你的sdk中已经下载好的 查看: 右键目标工程,选择proper ...

  9. netty 学习(1)

    Netty使用:通过BootStrap来启动.而BootStrap主要分为两类:1.面向连接(TCP)的(ClientBootStrap和ServerBootStrap);2. 非面向连接(UDP)的 ...

  10. 滴水穿石-07Java开发中常见的错误

    1:使用工具Eclipse 1.1 "语法错误" 仅当源级别为 1.5 时已参数化的类型才可用 设置eclipse,窗口—>java—>编译器—>JDK一致性调到 ...