• 测试大数据类型


    -- 测试大数据类型

    CREATE TABLE test(

         id INT PRIMARY KEY AUTO_INCREMENT,

         content LONGTEXT,

         img LONGBLOB

    );

    Text:

    public class App_text {

    // 全局参数

    private Connection con;

    private Statement stmt;

    private PreparedStatement pstmt;

    private ResultSet rs;

    @Test

    // 1. 保存大文本数据类型   ( longtext)

    public void testSaveText() {

    String sql = "insert into test(content) values(?)";

    try {

    // 连接

    con = JdbcUtil.getConnection();

    // pstmt 对象

    pstmt = con.prepareStatement(sql);

    // 设置参数

    // 先获取文件路径

    String path = App_text.class.getResource("tips.txt").getPath();

    FileReader reader = new FileReader(new File(path));

    pstmt.setCharacterStream(1, reader);

    // 执行sql

    pstmt.executeUpdate();

    // 关闭

    reader.close();

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    JdbcUtil.closeAll(con, pstmt, null);

    }

    }

    @Test

    // 2. 读取大文本数据类型   ( longtext)

    public void testGetAsText() {

    String sql = "select * from  test;";

    try {

    // 连接

    con = JdbcUtil.getConnection();

    // pstmt 对象

    pstmt = con.prepareStatement(sql);

    // 读取

    rs = pstmt.executeQuery();

    if (rs.next()) {

    // 获取长文本数据, 方式1:

    //Reader r = rs.getCharacterStream("content");

    // 获取长文本数据, 方式2:

    System.out.print(rs.getString("content"));

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    JdbcUtil.closeAll(con, pstmt, null);

    }

    }

    }

    blob

    public class App_blob {

    // 全局参数

    private Connection con;

    private Statement stmt;

    private PreparedStatement pstmt;

    private ResultSet rs;

    @Test

    // 1. 二进制数据类型   ( longblob)

    public void testSaveText() {

    String sql = "insert into test(img) values(?)";

    try {

    // 连接

    con = JdbcUtil.getConnection();

    // pstmt 对象

    pstmt = con.prepareStatement(sql);

    // 获取图片流

    InputStream in = App_text.class.getResourceAsStream("7.jpg");

    pstmt.setBinaryStream(1, in);

    // 执行保存图片

    pstmt.execute();

    // 关闭

    in.close();

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    JdbcUtil.closeAll(con, pstmt, null);

    }

    }

    @Test

    // 2. 读取大文本数据类型   ( longblob)

    public void testGetAsText() {

    String sql = "select img from  test where id=2;";

    try {

    // 连接

    con = JdbcUtil.getConnection();

    // pstmt 对象

    pstmt = con.prepareStatement(sql);

    // 读取

    rs = pstmt.executeQuery();

    if (rs.next()) {

    // 获取图片流

    InputStream in = rs.getBinaryStream("img");

    // 图片输出流

    FileOutputStream out = new FileOutputStream(new File("c://1.jpg"));

    int len = -1;

    byte b[] = new byte[1024];

    while ((len = in.read(b)) != -1) {

    out.write(b, 0, len);

    }

    // 关闭

    out.close();

    in.close();

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    JdbcUtil.closeAll(con, pstmt, null);

    }

    }

    }

  • 相关阅读:
    MD5加密 + 盐
    SQLite数据库--C#访问加密的SQLite数据库
    SQLite问题笔记
    微信开发--Two.菜单生成
    NOIP2018游记(更新完毕)
    HNOI2019 游记
    JXOI2017-2018 解题报告
    网络流20+4题解题报告(已更前20题)
    CodeForces528A (STLset)
    CodeForces 140C New Year Snowmen(堆)
  • 原文地址:https://www.cnblogs.com/hello-liyb/p/7719756.html
Copyright © 2020-2023  润新知