二进制读取 jdbc

package com.itheima.clob.test;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.junit.Test;

import com.itheima.utils.JdbcUtil;

/**
 * 大二进制数据读写(图片,电影,音乐,字节码文件)  Mysq: blob  longblob
 * @author wangli
 *
 *
 use day16;
 create table testblob(
     id int primary key,
     content longblob
 );
 *
 */
public class BlobTest02 {
    //写一个图片到数据表中   测试时显示记录,注意  select id from testblob;
    @Test
    public void testAddBlob(){
        Connection con = null;
        PreparedStatement st =null;

        try {
            con = JdbcUtil.getConnection();
            String sql="insert into testblob values(?,?)";
            st = con.prepareStatement(sql);

            //赋值
            st.setInt(1, 1);
            InputStream is = new FileInputStream("src/1.jpg");//找到src下的文件1.jpg
            st.setBinaryStream(2, is, is.available());
            st.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUtil.release(null, st, con);
        }
    }

    @Test  //读取一个图片
    public void testReaderblob(){
        Connection con = null;
        PreparedStatement st =null;
        ResultSet rs = null;
        try {
            con = JdbcUtil.getConnection();
            String sql="select * from testblob where id=?";
            st = con.prepareStatement(sql);

            //赋值
            st.setInt(1, 1);

            //3.读取
            rs = st.executeQuery();
            if(rs.next()){
                //结果集中有数据
                InputStream is = rs.getBinaryStream("content");
                OutputStream os = new FileOutputStream("d:/1.jpg");
                int len=-1;
                byte buffer[] = new byte[1024];
                while((len=is.read(buffer))!=-1){
                    os.write(buffer, 0, len);
                }
                os.close();
                is.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUtil.release(null, st, con);
        }
    }
}
时间: 2024-11-06 16:11:32

二进制读取 jdbc的相关文章

读取JDBC配置文件jdbc.properties碰到的问题

这里 查询要读取jdbc.properties配置文件,采取类加载器转换流来读取, 类名调用.   而 jdbc.properties位置一定要放在src下面.否则会报找不到的错误

java Spring使用配置文件读取jdbc.properties

Spring使用配置文件读取jdbc.properties 在beans.xml中加入两个必须的bean [html]<bean id="propertyConfigurer"     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">      <property name="location" value="

MyBatis模糊查询异常: &#39;%${}&#39;&#39;读取jdbc属性

'%${}''不能传参,总是固定为root, 后来发现${username}是读取了jdbc里面的属性username,于是将jdbc属性名修改于是成功 MyBatis模糊查询异常: '%${}''读取jdbc属性 原文地址:https://www.cnblogs.com/ltfxy/p/10409883.html

c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变

c语言实现二进制(01)转化成txt格式文本: 下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误. 本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件前255字节以内的字符转换成相应的AscII码值的二进制表示,并存入输出文件a2.txt中.然后再将二进制文件还原并存入b2.txt文件. 参考链接:https://www.jb51.net/article/158695.htm 1 #include <cstdio> 2 #include <

以二进制读取文本文件(网上找的,仅自用,非原创)

using System; using System.IO; public class FileApp { public static void Main() { // 在当前目录创建一个文件myfile.txt,对该文件具有读写权限 FileStream fsMyfile = new FileStream("myfile.txt" , FileMode.Create, FileAccess.ReadWrite); // 创建一个数据流写入器,和打开的文件关联 StreamWriter

【QT】二进制读取图像文件并显示

打开对话框选择文件 二进制方式读取文件 转换成图像显示 void MainWindow::showImage() { //打开文件对话框 QString lastPath="D:/Englishpath/QTprojects/DATA/videoData"; fileName = QFileDialog::getOpenFileName(this,"OpenFile", lastPath); if(fileName.isEmpty()) { QMessageBox:

java攻城狮之路--复习JDBC(PrepareStatement)

PreparedStatement: 1.可以通过调用 Connection 对象的 preparedStatement() 方法获取 PreparedStatement 对象 2.PreparedStatement 接口是 Statement 的子接口,它表示一条预编译过的 SQL 语句 2.PreparedStatement 对象所代表的 SQL 语句中的参数用问号(?)来表示, 调用 PreparedStatement 对象的 setXXX() 方法来设置这些参数. setXXX() 方法

Spring整合jdbc

首先web.xml文件跟往常一样,加载spring容器和加载org.springframework.web.context.ContextLoaderListener读取applicationContext.xml文件初进行始化. 使用spring整合jdbc工具步骤: 1.使用连接池com.mchange.v2.c3p0.ComboPooledDataSource等工具创建数据源. 2.把数据源交给LazyConnectionDataSourceProxy进行管理 3.把LazyConnect

JDBC学习小结

一.JDBC基础 连接数据的步骤: 1.注册驱动 :Class.forName(“com.mysql.jdbc.Driver”) 推荐这种方式,不会对具体的驱动类产生依赖:DriverManager.registerDriver(com.mysql.jdbc.Driver) 会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖:System.setProperty(“jdbc.drivers”, “driver1:driver2”) 虽然不会对具体的驱动类产生依赖:但