当前位置: 移动技术网 > IT编程>开发语言>Java > JDBC编程实现文件、图片的存储方法

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

本文实例讲述了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.创建语句
   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程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网