把图片存入数据库
数据库SQL SERVER 2000
/*
---------------表结构------------
表名:student2
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(4) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| stupic | image | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
*/
把图片存入数据库
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package storeblob;
import java.sql.*;
import java.io.*;
/**
*
* @author Administrator
*/
public class StoreBLOB {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";
String user = "sa";//这里替换成你自已的数据库用户名
String password = "";//这里替换成你自已的数据库用户密码
Connection con = null;
PreparedStatement ps = null;
InputStream in = null;
try {
con = DriverManager.getConnection(url, user, password);
//从本地硬盘读取一张读片
in = new FileInputStream("d:/111/001.png");
ps = con.prepareStatement("insert into student2 values(?,?,?)");
ps.setInt(1, 1);
ps.setString(2, "qixin");
ps.setBinaryStream(3, in, in.available());
ps.executeUpdate();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
//关闭流
if (in != null) {
in.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//关闭相关连接
ps.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package storeblob;
import java.sql.*;
import java.io.*;
/**
*
* @author Administrator
*/
public class StoreBLOB {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";
String user = "sa";//这里替换成你自已的数据库用户名
String password = "";//这里替换成你自已的数据库用户密码
Connection con = null;
PreparedStatement ps = null;
InputStream in = null;
try {
con = DriverManager.getConnection(url, user, password);
//从本地硬盘读取一张读片
in = new FileInputStream("d:/111/001.png");
ps = con.prepareStatement("insert into student2 values(?,?,?)");
ps.setInt(1, 1);
ps.setString(2, "qixin");
ps.setBinaryStream(3, in, in.available());
ps.executeUpdate();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
//关闭流
if (in != null) {
in.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//关闭相关连接
ps.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
把图片从数据库中取出
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package storeblob;
import java.io.*;
import java.sql.*;
/**
*
* @author Administrator
*/
public class GetBLOB {
public static void main(String[] args) {
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";
String user = "sa";//这里替换成你自已的数据库用户名
String password = "";//这里替换成你自已的数据库用户密码
Connection con = null;
Statement st = null;
ResultSet rs = null;
InputStream in = null;
OutputStream out = null;
try {
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery("select stupic from student2 where id=1");
rs.next(); //将光标指向第一行
//从rs中读取stupic放进InputStream对象中
in = rs.getBinaryStream("stupic");
//申明byte数组,用来存放图片流
byte[] b = new byte[40000];
in.read(b); //从InputStream对象中读取数据放进byte数组中
//实例化OutputStream对象,在D盘创建一个图片文件
out = new FileOutputStream("d:/222.jpg");
//将文件输出,内容则为byte数组里面的数据
out.write(b);
out.flush();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//关闭相关连接
rs.close();
st.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package storeblob;
import java.io.*;
import java.sql.*;
/**
*
* @author Administrator
*/
public class GetBLOB {
public static void main(String[] args) {
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";
String user = "sa";//这里替换成你自已的数据库用户名
String password = "";//这里替换成你自已的数据库用户密码
Connection con = null;
Statement st = null;
ResultSet rs = null;
InputStream in = null;
OutputStream out = null;
try {
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery("select stupic from student2 where id=1");
rs.next(); //将光标指向第一行
//从rs中读取stupic放进InputStream对象中
in = rs.getBinaryStream("stupic");
//申明byte数组,用来存放图片流
byte[] b = new byte[40000];
in.read(b); //从InputStream对象中读取数据放进byte数组中
//实例化OutputStream对象,在D盘创建一个图片文件
out = new FileOutputStream("d:/222.jpg");
//将文件输出,内容则为byte数组里面的数据
out.write(b);
out.flush();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//关闭相关连接
rs.close();
st.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}