mysql blob字段存储图片操作示例
来源:互联网 发布:基于算法的漏洞排查 编辑:程序博客网 时间:2024/05/15 01:06
表结构:
create table view(id int unsigned NOT NULL AUTO_INCREMENT, catid int,title varchar(256),picture MEDIUMBLOB, content TEXT,PRIMARY KEY (id));
java类操作:
import java.awt.Image;import java.io.*;import java.nio.ByteBuffer;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.ImageIcon;import org.bean.View;/** * * @author weijian.zhongwj */public class ViewPointDao { public static View getView(Integer catId) { View view = new View(); try { String sql2 = "SELECT title, content, picture FROM view where catid=? limit 1"; PreparedStatement stmt2 = BaseDaoFactory.getInstance().prepareStatement(sql2); stmt2.setInt(1, catId); ResultSet resultSet = stmt2.executeQuery(); while (resultSet.next()) { String name = resultSet.getString(1); String description = resultSet.getString(2); ByteBuffer bb = ByteBuffer.allocate(1024 * 1024); byte[] buffer = new byte[1]; InputStream is = resultSet.getBinaryStream(3); while (is != null && is.read(buffer) > 0) { bb.put(buffer); } ImageIcon icon = new ImageIcon(bb.array()); view.setImage(icon.getImage()); view.setTitle(name); view.setContent(description); return view; } } catch (IOException ex) { Logger.getLogger(ViewPointDao.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(ViewPointDao.class.getName()).log(Level.SEVERE, null, ex); } return null; } public static boolean addView(View view) { FileInputStream fis = null; try { if (exit(view.getCatId())) { return update(view); } String sql = "INSERT INTO view (title, content, catid, picture) VALUES (?, ?, ?, ?)"; PreparedStatement stmt = BaseDaoFactory.getInstance().prepareStatement(sql); stmt.setString(1, view.getTitle()); stmt.setString(2, view.getContent()); stmt.setInt(3, view.getCatId()); if (view.getImageFile() != null) { File image = new File(view.getImageFile()); fis = new FileInputStream(image); //image.length(),返回文件的大小 stmt.setBinaryStream(4, fis, (int) image.length()); } else { stmt.setBinaryStream(4, null, 0); } int count = stmt.executeUpdate(); if (count > 0) { return true; } else { return false; } } catch (IOException ex) { Logger.getLogger(ViewPointDao.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(ViewPointDao.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if (fis != null) { fis.close(); } } catch (IOException ex) { } } return false; } public static boolean update(View view) { FileInputStream fis = null; try { String sql = "update view set title= ? ,content= ? " + (view.getImageFile() != null ? (",picture= ? ") : " ") + "where catid= ? "; PreparedStatement stmt = BaseDaoFactory.getInstance().prepareStatement(sql); stmt.setString(1, view.getTitle()); stmt.setString(2, view.getContent()); if (view.getImageFile() != null) { stmt.setInt(4, view.getCatId()); File image = new File(view.getImageFile()); fis = new FileInputStream(image); //image.length(),返回文件的大小 stmt.setBinaryStream(3, fis, (int) image.length()); } else { stmt.setInt(3, view.getCatId()); } int count = stmt.executeUpdate(); if (count > 0) { return true; } else { return false; } } catch (IOException ex) { Logger.getLogger(ViewPointDao.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(ViewPointDao.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if (fis != null) { fis.close(); } } catch (IOException ex) { } } return false; } public static boolean exit(Integer catId) { try { String sql2 = "SELECT title, content, picture FROM view where catid=? limit 1"; PreparedStatement stmt2 = BaseDaoFactory.getInstance().prepareStatement(sql2); stmt2.setInt(1, catId); ResultSet resultSet = stmt2.executeQuery(); while (resultSet.next()) { return true; } } catch (SQLException ex) { Logger.getLogger(ViewPointDao.class.getName()).log(Level.SEVERE, null, ex); } return false; }}
bean:
import java.awt.Image;public class View { /** * 景点标题 */ private String title; /** * 景点内容 */ private String content; /** * 景点图片 */ private Image image; /** * 景点图片上传路径 */ private String imageFile; /** * 分类id */ private int catId; public int getCatId() { return catId; } public void setCatId(int catId) { this.catId = catId; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Image getImage() { return image; } public void setImage(Image image) { this.image = image; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getImageFile() { return imageFile; } public void setImageFile(String imageFile) { this.imageFile = imageFile; }}
- mysql blob字段存储图片操作示例
- mysql操作BLOB字段
- Java 操作MySql Blob 字段
- php 操作 MySQL 中的Blob类型 存储图片
- php 操作 MySQL 中的Blob类型 存储图片
- php 操作 MySQL 中的Blob类型 存储图片
- PHP操作Mysql中的BLOB字段
- MySQL 操作Blob字段工具(Java)
- Mysql 用blob存储图片问题 GBK
- c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库
- T_SQL存储过程读写图片,文件等(BLOB)字段
- T_SQL存储过程读写图片,文件等(BLOB)字段
- blob 字段图片处理
- ORACLE操作BLOB字段
- 有关blob字段操作
- C#操作BLOB字段
- jeecg 操作BLOB字段
- android操作sqlite3的blob字段,显示数据中的图片
- 在bochs上运行的第一个操作系统(Windows版)
- 利用AppFace美化VC程序(对话框或文档视图结构)
- Linux日志
- java swing的背景图片按比例缩放
- 使用googleMap获取api方法
- mysql blob字段存储图片操作示例
- 嵌入式学习笔记
- Script网页小游戏<<能抓到我吗?>>
- android定位个人当前位置
- Android ANR (转)
- 一些编程时的辅助脚本
- IOS之Objective-C学习笔记(五)
- 拿到驾照了
- android ctivity完美退出