zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    My.NET.ClassLibrary.Note.1
    DesignPattern.Ch12.Facade.Node
    DesignPattern.Ch10.Template Method.Note
    Oracle.sql.Note
    C#.Static Field And Static Constructor.Autocriticism
    DesignPattern.Ch4.Open Closed Principle.Note
    关于n!被整除的问题【算法实现】
    令人费解的编译错误:error C2144: syntax error : 'double' should be preceded by ';' 和 error C3646: ';' : unknown override specifier
    诡异难解决的错误:Windows已在xxx.exe中触发一个断点
    Linux(Ubuntu10.04 )下libxml2的安装以及使用示例
  • 原文地址:https://www.cnblogs.com/BlueStarWei/p/9220990.html
Copyright © 2011-2022 走看看