使用JDBC写入blob数据到数据库以及读取数据
来源:互联网 发布:淘宝直通车ppc 编辑:程序博客网 时间:2024/05/14 15:04
package com.yucheng.jdbc;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.print.attribute.standard.OutputDeviceAssigned;
import org.junit.Test;
public class JdbcTest {
/**
* 读取Blob数据
*/
@Test
public void testReadBlob(){
Connection conn =null;
PreparedStatement preStatement=null;
ResultSet resultSet=null;
try {
conn=JDBCTools.getConnecition();
String sql="select * from testBlob where id=1";
preStatement=conn.prepareStatement(sql);
resultSet=preStatement.executeQuery();
if(resultSet.next()){
int id=resultSet.getInt(1);
String name=resultSet.getString(2);
int age=resultSet.getInt(3);
Blob pic=resultSet.getBlob(4);
InputStream in=pic.getBinaryStream();
OutputStream out=new FileOutputStream("out.jpg");
byte[] buffer =new byte[1024];
int len=0;
while((len=in.read(buffer))!=-1){
out.write(buffer);
out.flush();
}
out.close();
in.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCTools.release(preStatement, conn, resultSet);
}
}
/**
* 插入Blob类型的数据,使用的是PrepareStatement的setBlob(index,stream)方法
*/
@Test
public void testInsertBlob(){
Connection conn =null;
PreparedStatement preStatement=null;
try {
conn=JDBCTools.getConnecition();
String sql="insert into testBlob(name,age,pic) values(?,?,?)";
preStatement=conn.prepareStatement(sql);
preStatement.setString(1, "魅力");
preStatement.setInt(2, 22);
InputStream pic=new FileInputStream("hello.jpg");
preStatement.setBlob(3,pic);
preStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCTools.release(preStatement, conn, null);
}
}
/**
* 得到主键值
*/
@Test
public void testGetKeyValue() {
Connection conn=null;
PreparedStatement preStatement=null;
ResultSet resultSet=null;
try {
conn=JDBCTools.getConnecition();
String sql="insert into person(name) values(?)";
preStatement=conn.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS);
preStatement.setString(1, "meimei");
preStatement.executeUpdate();
resultSet=preStatement.getGeneratedKeys();
if(resultSet.next()){
System.out.println(resultSet.getObject(1));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCTools.release(preStatement, conn, resultSet);
}
}
}
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.print.attribute.standard.OutputDeviceAssigned;
import org.junit.Test;
public class JdbcTest {
/**
* 读取Blob数据
*/
@Test
public void testReadBlob(){
Connection conn =null;
PreparedStatement preStatement=null;
ResultSet resultSet=null;
try {
conn=JDBCTools.getConnecition();
String sql="select * from testBlob where id=1";
preStatement=conn.prepareStatement(sql);
resultSet=preStatement.executeQuery();
if(resultSet.next()){
int id=resultSet.getInt(1);
String name=resultSet.getString(2);
int age=resultSet.getInt(3);
Blob pic=resultSet.getBlob(4);
InputStream in=pic.getBinaryStream();
OutputStream out=new FileOutputStream("out.jpg");
byte[] buffer =new byte[1024];
int len=0;
while((len=in.read(buffer))!=-1){
out.write(buffer);
out.flush();
}
out.close();
in.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCTools.release(preStatement, conn, resultSet);
}
}
/**
* 插入Blob类型的数据,使用的是PrepareStatement的setBlob(index,stream)方法
*/
@Test
public void testInsertBlob(){
Connection conn =null;
PreparedStatement preStatement=null;
try {
conn=JDBCTools.getConnecition();
String sql="insert into testBlob(name,age,pic) values(?,?,?)";
preStatement=conn.prepareStatement(sql);
preStatement.setString(1, "魅力");
preStatement.setInt(2, 22);
InputStream pic=new FileInputStream("hello.jpg");
preStatement.setBlob(3,pic);
preStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCTools.release(preStatement, conn, null);
}
}
/**
* 得到主键值
*/
@Test
public void testGetKeyValue() {
Connection conn=null;
PreparedStatement preStatement=null;
ResultSet resultSet=null;
try {
conn=JDBCTools.getConnecition();
String sql="insert into person(name) values(?)";
preStatement=conn.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS);
preStatement.setString(1, "meimei");
preStatement.executeUpdate();
resultSet=preStatement.getGeneratedKeys();
if(resultSet.next()){
System.out.println(resultSet.getObject(1));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCTools.release(preStatement, conn, resultSet);
}
}
}
0 0
- 使用JDBC写入blob数据到数据库以及读取数据
- 使用JDBC和Hibernate来写入Blob型数据到Oracle中
- 使用JDBC和Hibernate来写入Blob型数据到Oracle中
- 使用JDBC和Hibernate来写入Blob型数据到Oracle中
- 使用JDBC和Hibernate来写入Blob型数据到Oracle中
- 使用JDBC和Hibernate来写入Blob型数据到Oracle中
- 使用JDBC和Hibernate来写入Blob型数据到Oracle中
- 使用JDBC和Hibernate来写入Blob型数据到Oracle中
- 使用JDBC和Hibernate来写入Blob型数据到Oracle中
- 读取数据库BLOB数据
- 如何使用C#和ADO.NET在SQL Server数据库读取和写入blob数据
- 通过JDBC向数据库中存储&读取Blob数据
- .Net读取Excle数据写入到数据库
- JDBC+Hibernate将Blob数据写入Oracle
- JDBC+Hibernate将Blob数据写入Oracle
- JDBC+Hibernate将Blob数据写入Oracle
- JDBC+Hibernate将Blob数据写入Oracle
- JDBC+Hibernate将Blob数据写入Oracle
- 杭电2141Can you find it?
- Swift开发教程--字符串的操作
- 详解Spring MVC 4常用的那些注解
- Drupal 菜单系统 hook_menu
- android 获取 imei号码
- 使用JDBC写入blob数据到数据库以及读取数据
- GRE封装解封装过程
- 倒谱的意义
- Android安全研究经验谈
- Fedora22环境下Python3.4+Django1.8+MySQL5.6环境搭建
- NYOJ 860 又见01背包
- C#+Sqlserver2008下分区表的使用
- 【BZOJ 3679】数字之积
- GCC编译选项