jdbc将图片(二进制文件如电影,音乐等)从数据库取出
2017-05-09 00:24
330 查看
//jdbc将图片(二进制文件如电影,音乐等)从数据库取出,我是放在了d盘,一般直接在网站上展示即可
package chap06.sec01;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import model.Book;
import util.DbUtil;
public class Demo2 {
private static DbUtil dbUtil=new DbUtil();
private static int addBook(Book book) throws SQLException, FileNotFoundException{//插入图书
String sql="insert into t_book values(null,?,?,?,?,?,?)";
Connection con= dbUtil.getCon();
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, book.getBookName());
pstmt.setFloat(2, book.getPrice());
pstmt.setString(3, book.getAuthor());
pstmt.setInt(4, book.getBookTypeId());
File context=book.getContext();
InputStream in=new FileInputStream(context);
pstmt.setAsciiStream(5, in,context.length());//给第5个坑设置值
File pic=book.getPic();
InputStream in_pic=new FileInputStream(pic);
pstmt.setBinaryStream(6, in_pic, pic.length());//给第6个坑设置值
int result=pstmt.executeUpdate();
dbUtil.closeCon(pstmt, con);
return result;
}
public static void getBook(int id) throws SQLException, IOException{
Connection conn=dbUtil.getCon();
String sql="select * from t_book where id=?";
PreparedStatement pre=conn.prepareStatement(sql);
pre.setInt(1, id);
ResultSet rs=pre.executeQuery();
if(rs.next()){
String bookName=rs.getString("bookName");
float price=rs.getFloat("price");
String author=rs.getString("author");
int bookTypeId=rs.getInt("bookTypeId");
Clob c=rs.getClob("context");
String context=c.getSubString(1, (int) c.length());
Blob b=rs.getBlob("pic");//
OutputStream out=new FileOutputStream(new File("d:/linshi.png"));//linshi.png为临时创建存放图片的
out.write(b.getBytes(1, (int)b.length()));
out.close();
System.out.println("图书名称:"+bookName);
System.out.println("图书价格:"+price);
System.out.println("图书作者:"+author);
System.out.println("图书类型ID:"+bookTypeId);
System.out.println("图书内容:"+context);
}
dbUtil.closeCon(pre, conn);
}
public static void main(String[] args) throws Exception {
// File context=new File("C:/helloworld.txt");
// File pic=new File("C:/ok.png");
// Book book=new Book("javaqwe4",444,"李四4",4,context,pic);
// try {
// int result =addBook(book)
9eb8
;
// if(result==1){
// System.out.println("添加成功");
// }
// else{
// System.out.println("添加失败");
// }
// } catch (SQLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// System.out.println("hellowold");
getBook(18);//18为图书id根据id查其中的图片
}
}
package chap06.sec01;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import model.Book;
import util.DbUtil;
public class Demo2 {
private static DbUtil dbUtil=new DbUtil();
private static int addBook(Book book) throws SQLException, FileNotFoundException{//插入图书
String sql="insert into t_book values(null,?,?,?,?,?,?)";
Connection con= dbUtil.getCon();
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, book.getBookName());
pstmt.setFloat(2, book.getPrice());
pstmt.setString(3, book.getAuthor());
pstmt.setInt(4, book.getBookTypeId());
File context=book.getContext();
InputStream in=new FileInputStream(context);
pstmt.setAsciiStream(5, in,context.length());//给第5个坑设置值
File pic=book.getPic();
InputStream in_pic=new FileInputStream(pic);
pstmt.setBinaryStream(6, in_pic, pic.length());//给第6个坑设置值
int result=pstmt.executeUpdate();
dbUtil.closeCon(pstmt, con);
return result;
}
public static void getBook(int id) throws SQLException, IOException{
Connection conn=dbUtil.getCon();
String sql="select * from t_book where id=?";
PreparedStatement pre=conn.prepareStatement(sql);
pre.setInt(1, id);
ResultSet rs=pre.executeQuery();
if(rs.next()){
String bookName=rs.getString("bookName");
float price=rs.getFloat("price");
String author=rs.getString("author");
int bookTypeId=rs.getInt("bookTypeId");
Clob c=rs.getClob("context");
String context=c.getSubString(1, (int) c.length());
Blob b=rs.getBlob("pic");//
OutputStream out=new FileOutputStream(new File("d:/linshi.png"));//linshi.png为临时创建存放图片的
out.write(b.getBytes(1, (int)b.length()));
out.close();
System.out.println("图书名称:"+bookName);
System.out.println("图书价格:"+price);
System.out.println("图书作者:"+author);
System.out.println("图书类型ID:"+bookTypeId);
System.out.println("图书内容:"+context);
}
dbUtil.closeCon(pre, conn);
}
public static void main(String[] args) throws Exception {
// File context=new File("C:/helloworld.txt");
// File pic=new File("C:/ok.png");
// Book book=new Book("javaqwe4",444,"李四4",4,context,pic);
// try {
// int result =addBook(book)
9eb8
;
// if(result==1){
// System.out.println("添加成功");
// }
// else{
// System.out.println("添加失败");
// }
// } catch (SQLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// System.out.println("hellowold");
getBook(18);//18为图书id根据id查其中的图片
}
}
相关文章推荐
- jdbc将图片(二进制文件如电影,音乐等)插入数据库
- 11级_Java_曹建波 9.07 JDBC编程将文本图片存入数据库并取出
- .net开发笔记之四:显示从数据库中取出的图片
- 常用的DBOperate之六——将图片从数据库中取出
- 利用数据库如何存入BLOB格式图片,并从数据库中取出BLBO格式图片显示出来
- JDBC中将图片保存到数据库
- JDBC中将图片保存到数据库
- 从数据库中取出一个image图片,获得其缩略图,插入一个C1Flexgrid的单元格中
- 不知道数据库中表的列类型的前提下,使用JDBC正确的取出数据(取出Result结果集中的字段(不同类型))
- java hibernate 将图片存入数据库,并从数据库取出显示在网页上
- mini学生管理系统。。。全部代码,4个java文件放在同一个包下面即可。用JDBC调用数据库取出数据。
- JDBC实现图片存取数据库(1)
- 如何将图片转换存入到数据库中,并从数据库中取出转换成图片
- 如何将图片存入数据库中,并从数据库中取出图片
- JDBC编程将文本图片存入数据库并取出
- jdbc保存图片到数据库并读取代码
- 从数据库取出图片并发布的Servlet
- 如何将图片转换存入到数据库中,并从数据库中取出转换成图片
- 复习课程jdbc:使用配置文件properties进行连接数据库,数据库存取图片,批处理,时间戳,事物回滚等等
- JDBC实现图片存取数据库(2)