您的位置:首页 > 编程语言

JDBC编程实现文件、图片的存储方法

2015-10-19 12:49 621 查看
/*
实现的功能:
用数据库存储文本数据,并且读取出来放在当前项目里
分析:
难度不是很大,关键是掌握文件流,数据库的操作不是很多,但是文件流的读写比较多
日期:20131003
作者:烟大阳仔
*/
public class Ckb_test {
public static void main(String[] args) throws SQLException, IOException {
// TODO Auto-generated method stub
read();
}
static void create() throws SQLException, IOException
{
Connection conn=null;
PreparedStatement prest=null;
ResultSet resultset=null;
try {
//2.建立连接
conn=JdbcUtils.getConnection();
//单例设计模式
conn=JdbcUtilsSingle.getInstance().getConnection();
//3.创建语句
String sql="insert into ckb_test(text) values(?)";
prest=conn.prepareStatement(sql);
File file=new File("src/cn/com/JDBC/JdbcUtils.java");
Reader reader=new BufferedReader(new FileReader(file));
prest.setCharacterStream(1, reader, (int)file.length());
//4.执行语句
int i=prest.executeUpdate();
reader.close();
System.out.println("i="+i);
} finally
{
JdbcUtils.free(resultset, prest, conn);
}
}
static void read() throws SQLException, IOException
{
Connection conn=null;
Statement st=null;
ResultSet resultset=null;
try {
//2.建立连接
conn=JdbcUtils.getConnection();
//单例设计模式
conn=JdbcUtilsSingle.getInstance().getConnection();
//3.创建语句
st=conn.createStatement();
//4.执行语句
resultset=st.executeQuery("select text from ckb_test");
//5.处理结果
while(resultset.next())
{
Clob clob=resultset.getClob(1);
Reader reader=clob.getCharacterStream();
//reader=resultset.getCharacterStream(1);
File file=new File("JdbcUtils.java");
Writer writer=new BufferedWriter(new FileWriter(file));
char[] buff=new char[1024];
for(int i=0;(i=reader.read(buff))>0;)
{
writer.write(buff,0,i);
}
writer.close();
reader.close();
}
} finally
{
JdbcUtils.free(resultset, st, conn);
}
}
}
/*
实现的功能:
用数据库存储图片数据,并且读取出来放在当前项目里
分析:
难度不是很大,关键是掌握字节流,数据库的操作不是很多,但是文件流的读写比较多,注意更改图片的目录
日期:20131003
作者:烟大阳仔
*/
public class PictureBlob {
public static void main(String[] args) throws SQLException, IOException {
read();
}
static void create() throws SQLException, IOException
{
Connection conn=null;
PreparedStatement prest=null;
ResultSet resultset=null;
try {
//2.建立连接
conn=JdbcUtils.getConnection();
//单例设计模式
conn=JdbcUtilsSingle.getInstance().getConnection();
//3.创建语句
String sql="insert into blob_test(big_bit) values(?)";
prest=conn.prepareStatement(sql);
File file=new File("C:\\Documents and Settings\\Administrator\\My Documents\\My Pictures\\cxg.jpg");
InputStream in=new BufferedInputStream(new FileInputStream(file));
prest.setBinaryStream(1, in, (int)file.length());
//4.执行语句
int i=prest.executeUpdate();
in.close();
System.out.println("i="+i);
} finally
{
JdbcUtils.free(resultset, prest, conn);
}
}
static void read() throws SQLException, IOException
{
Connection conn=null;
Statement st=null;
ResultSet resultset=null;
try {
//2.建立连接
conn=JdbcUtils.getConnection();
//单例设计模式
conn=JdbcUtilsSingle.getInstance().getConnection();
//3.创建语句
st=conn.createStatement();
//4.执行语句
resultset=st.executeQuery("select big_bit from blob_test");
//5.处理结果
while(resultset.next())
{
Blob blob=resultset.getBlob(1);
InputStream in=blob.getBinaryStream();
//reader=resultset.getCharacterStream(1);
File file=new File("1.jpeg");
OutputStream out=new BufferedOutputStream(new FileOutputStream(file));
byte[] buff=new byte[1024];
for(int i=0;(i=in.read(buff))>0;)
{
out.write(buff,0,i);
}
out.close();
in.close();
}
} finally
{
JdbcUtils.free(resultset, st, conn);
}
}
}

希望本文所述对大家Java程序设计有所帮助。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JDBC 存储