myBatis之Clob & Blob

时间:2023-03-10 00:51:26
myBatis之Clob & Blob

1. 表结构

myBatis之Clob & Blob

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 表数据

myBatis之Clob & Blob

7.2 TestLOB输出

myBatis之Clob & Blob

7.3 生成图片

myBatis之Clob & Blob

8.总结:

Blob & Clob 就是通过流进行读写操作

更多内容,请访问:http://www.cnblogs.com/BlueStarWei/