PreparedStatement(二)_前进的火车_新浪博客

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 = newFileReader(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);

        }

    }

}

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 = newFileOutputStream(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);

        }

    }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值