ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA---BLOB数据的插入与查询

2022-04-19 22:02:31  阅读:148  来源: 互联网

标签:ps JAVA java rs --- BLOB sql import null


package java5.blob;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

import java3.bean.Customer;
import java3.util.JDBCUtils;

/*
 * 	使用preparedStatement操作Blob类型的数据
 */
public class BlobTest {
	//向数据表customers中插入Blob类型的字段
	@Test
	public void testInsert() throws Exception{
		Connection conn = JDBCUtils.getConnedtion();
		String sql="insert into customers(name,email,birth,photo)values(?,?,?,?)";
		PreparedStatement ps = conn.prepareStatement(sql);
		ps.setObject(1, "lion");
		ps.setObject(2, "1123123@163.com");
		ps.setObject(3, "1111-2-3");
		FileInputStream is = new FileInputStream(new File("2.png"));
		ps.setBlob(4, is);
		
		ps.execute();
		JDBCUtils.closeResource(conn, ps);
		
	}
	
	//查询数据表customers中Blob类型的字段
	@Test
	public void testQuery()  {
		InputStream is=null;
		FileOutputStream fos=null;
		Connection conn =null;
		PreparedStatement ps=null;
		ResultSet rs =null;
		try {
			conn = JDBCUtils.getConnedtion();
			String sql="select id,name,email,birth,photo from customers where id=?";
			ps = conn.prepareStatement(sql);
			ps.setObject(1, 21);
			rs = ps.executeQuery();
			
			if(rs.next()){
				int id=rs.getInt("id");
				String name = rs.getString("name");
				String email = rs.getString("email");
				Date birth = rs.getDate("birth");
				
				Customer customer = new Customer(id, name, email, birth);
				System.out.println(customer);
				
				//将blob类型的字段下载下来,以文件的方式保存在本地
				Blob photo = rs.getBlob("photo");
				is = photo.getBinaryStream();
				fos = new FileOutputStream("3.png");
				byte[] buffer=new byte[1024];
				int len;
				while((len=is.read(buffer))!=-1){
					fos.write(buffer, 0, len);
				}
			
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			
			if(is!=null){
				try {
					is.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(fos!=null){
				try {
					fos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			
			JDBCUtils.closeResource(conn, ps, rs);
		}
	}
}

标签:ps,JAVA,java,rs,---,BLOB,sql,import,null
来源: https://www.cnblogs.com/fate-/p/16167573.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有