JAVA保存图片到MYSQL数据库中,两个方法的区别.

rankaone 2008-01-02 10:02:32

Connection con = db.getConn();
String erpsql = "insert into table_name values(?,?,?,?)";
PreparedStatement stmt = con.prepareStatement(erpsql);
stmt.setString(1,id);
stmt.setString(2,type_id);
stmt.setString(3,date);
stmt.setBinaryStream(4,fin,(int)file.getFileSize());
stmt.executeUpdate();


这个是保存bolob类型到mysql 数据库中的方法..

其中还有一方法也能做到.不同点在于:

Connection con = db.getConn();
String erpsql = "insert into table_name values(?,?,?,?)";
PreparedStatement stmt = con.prepareStatement(erpsql);
stmt.setString(1,id);
stmt.setString(2,type_id);
stmt.setString(3,date);
System.out.println("fsdfassss===="+file.getFileSize());
try {
stmt.setBytes(4, file.getFileData());
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
stmt.executeUpdate();




问题:setBytes()方法和setBinaryStream()方法有什么区别?
按我程序现在出的问题来看,好象图片的到小,用setBytes()方法到数据库里就边成原来的2倍了..
...全文
934 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nighteagle82 2008-01-03
  • 打赏
  • 举报
回复
同意楼上的看法.一般用的最多的就是通过SMARTUPLOAD上传图片到某个文件夹.
数据库只保存路径.但是这种方法,好像都是偷懒的做法...
最好的方法还是在数据库存二进制.
不过存路径的用的较多...也简单方便...
qin_07 2008-01-03
  • 打赏
  • 举报
回复
一般把图片本身上传到一个文件夹里,然后把文件路径保存到数据库中,用该图片的时候只用去数据库读出图片路径就可以了

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧