JDBC編程實現文件、圖片的存儲方法
更新時間:2015年10月19日 12:49:07 作者:煙大洋仔
這篇文章主要介紹了JDBC編程實現文件、圖片的存儲方法,以實例形式分析了Java基于JDBC操作數據庫的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了JDBC編程實現文件、圖片的存儲方法。分享給大家供大家參考,具體如下:
/*
實現的功能:
用數據庫存儲文本數據,并且讀取出來放在當前項目里
分析:
難度不是很大,關鍵是掌握文件流,數據庫的操作不是很多,但是文件流的讀寫比較多
日期: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.創(chuàng)建語句
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.執(zhí)行語句
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.創(chuàng)建語句
st=conn.createStatement();
//4.執(zhí)行語句
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);
}
}
}
/*
實現的功能:
用數據庫存儲圖片數據,并且讀取出來放在當前項目里
分析:
難度不是很大,關鍵是掌握字節(jié)流,數據庫的操作不是很多,但是文件流的讀寫比較多,注意更改圖片的目錄
日期: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.創(chuàng)建語句
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.執(zhí)行語句
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.創(chuàng)建語句
st=conn.createStatement();
//4.執(zhí)行語句
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程序設計有所幫助。
相關文章
Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 代碼實踐
這篇文章主要介紹了Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 實踐,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析
這篇文章主要介紹了TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析,具有一定參考價值,需要的朋友可以了解下。2017-11-11
SpringCloud Alibaba Nacos 整合SpringBoot A
這篇文章主要介紹了SpringCloud Alibaba Nacos 整合SpringBoot Admin實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
String實例化及static final修飾符實現方法解析
這篇文章主要介紹了String實例化及static final修飾符實現方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09

