- 浏览: 1571846 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
做个简单 图片上传和浏览的工具
package com.enhance.jdbc.blob; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Blob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.swing.DefaultListModel; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.ListSelectionModel; /* 创建 blob 字段的 表 create table img_table (img_id int auto_increment primary key, img_name varchar(255), img_data mediumblob); */ public class BlobTest { JFrame jf=new JFrame("图片管理程序"); private static Connection conn; private static PreparedStatement insert; private static PreparedStatement query; private static PreparedStatement queryAll; private DefaultListModel imageModel=new DefaultListModel(); private JList imageList=new JList(imageModel); private JTextField filePath=new JTextField(26); private JButton browserBn=new JButton("..."); private JButton uploadBn=new JButton("上传"); private JLabel imageLabel=new JLabel(); JFileChooser chooser=new JFileChooser("."); ExtensionFileFilter filter=new ExtensionFileFilter(); static{ try { Properties prop=new Properties(); prop.load(new FileInputStream("src/mysql.ini")); String driver=prop.getProperty("driver"); String url=prop.getProperty("url"); String user=prop.getProperty("user"); String pass=prop.getProperty("pass"); Class.forName(driver); conn=DriverManager.getConnection(url,user,pass); insert=conn.prepareStatement("insert into img_table(img_name,img_data) values (?,?)",Statement.RETURN_GENERATED_KEYS); query=conn.prepareStatement("select img_data from img_table where img_id=?"); queryAll=conn.prepareStatement("select img_id,img_name from img_table"); } catch (Exception e) { e.printStackTrace(); } } public void init() throws SQLException{ filter.addExtension("jpg"); filter.addExtension("jpeg"); filter.addExtension("gif"); filter.addExtension("png"); filter.setDescription("图片文件(*.jpg,*.jpeg,*.gif,*.png)"); chooser.addChoosableFileFilter(filter); chooser.setAcceptAllFileFilterUsed(false); fillListModel(); filePath.setEditable(false); //只能单选 imageList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JPanel jp=new JPanel(); jp.add(filePath); jp.add(browserBn); browserBn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub int result=chooser.showDialog(jf, "浏览图片文件上传"); if(result==JFileChooser.APPROVE_OPTION){ filePath.setText(chooser.getSelectedFile().getPath()); } } }); jp.add(uploadBn); uploadBn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(filePath.getText().trim().length()>0){ upload(filePath.getText()); //请客文本框内容 filePath.setText(""); } } }); JPanel left=new JPanel(); left.setLayout(new BorderLayout()); left.add(new JScrollPane(imageLabel),BorderLayout.CENTER); left.add(jp,BorderLayout.SOUTH); jf.add(left); imageList.setFixedCellWidth(160); jf.add(new JScrollPane(imageList),BorderLayout.EAST); imageList.addMouseListener(new MouseAdapter(){ @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub if(e.getClickCount()>=2){ //取出选择的List ImageHolder cur=(ImageHolder)imageList.getSelectedValue(); try { showImage(cur.getId()); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }); jf.setSize(620,400); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); } public void fillListModel() throws SQLException{ ResultSet rs=null; try { imageModel.clear(); rs=queryAll.executeQuery(); while(rs.next()){ imageModel.addElement(new ImageHolder(rs.getInt(1),rs.getString(2))); } }finally{ if(rs!=null) rs.close(); } } public void upload(String fileName){ InputStream is=null; try { String imageName=fileName.substring(fileName.lastIndexOf("\\")+1,fileName.lastIndexOf(".")); insert.setString(1, imageName); File f=new File(fileName); is=new FileInputStream(f); insert.setBinaryStream(2, is,(int)f.length()); int affect=insert.executeUpdate(); System.out.println(affect); if(affect==1) fillListModel(); } catch (Exception e) { e.printStackTrace(); }finally{ try { if(is!=null) is.close(); } catch (Exception e2) { e2.printStackTrace(); } } } public void showImage(int id) throws SQLException{ ResultSet rs=null; try { query.setInt(1, id); rs=query.executeQuery(); if(rs.next()){ Blob imageBlob=rs.getBlob(1); imageBlob.getBinaryStream(); ImageIcon icon=new ImageIcon(imageBlob.getBytes(1l, (int)imageBlob.length())); imageLabel.setIcon(icon); } }finally{ if(rs!=null) rs.close(); } } public static void main(String[] args) throws SQLException { new BlobTest().init(); } } //----------------------------- package com.enhance.jdbc.blob; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import javax.swing.filechooser.FileFilter; public class ExtensionFileFilter extends FileFilter { private String description=""; private ArrayList<String> extensions=new ArrayList<String>(); public void addExtension(String extension){ if(!extension.startsWith(".")){ extension="."+extension; extensions.add(extension.toLowerCase()); } } @Override public boolean accept(File f) { // TODO Auto-generated method stub if(f.isDirectory()) return true; String name=f.getName().toLowerCase(); for (String extension :extensions){ if(name.endsWith(extension)) return true; } return false; } public void setDescription(String aDescription){ description=aDescription; } @Override public String getDescription() { // TODO Auto-generated method stub return description; } } //---------------------------------- package com.enhance.jdbc.blob; public class ImageHolder { private int id; private String name; public ImageHolder() { super(); // TODO Auto-generated constructor stub } public ImageHolder(int id, String name) { super(); this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { // TODO Auto-generated method stub return name; } }
发表评论
-
C3p0 和 DBCP连接池
2013-10-06 11:14 1251package com.enhance.jdbc; ... -
JDBC 事务 和 savePoint
2013-10-06 11:14 1438package com.enhance.jdbc; ... -
ResultSetMetaData 和 DatabaseMetaData
2013-10-06 11:13 3874ResultSetMetaData:用来分析 "结果 ... -
批量执行 DDL 和 DML
2013-10-06 11:13 1429package com.enhance.jdbc; ... -
可滚动 ,可更新的 结果集
2013-10-05 12:11 1168package com.enhance.jdbc; ... -
Statement 和 PreparedStatement ,CallabelStatement
2013-10-05 11:49 1100package com.enhance.jdbc; ... -
JDBC 执行sql语句
2013-10-05 11:41 7526package com.enhance.jdbc; ... -
JDBC连接mysql
2013-10-05 11:36 1154加入 mysql的驱动jar: mysql-connect ...
相关推荐
java中读取ORACLE中BLOB字段存储的图片
C# oracle blob类型 读入与保存
2、com.ub:实现简单的插入及读取操作,读取后的BLOB可以生成新图片,并使用JFrame方式展现。 3、com.cc: 由于需要将两个不同库(测试代码是同一个库的两个表 IMAGETAB和 IMAGETAB3)的的照片进行更新,表里面存...
Struts用 JDBC Blob字段 保存和读取 Oracle 数据库 好用 试过 有详细注释
c#-操作数据库oracle的小代码,提供用于学习。代码主要实现从oracle读取、保存、上传图片等功能,使用了Oracle.DataAccess.dll,想了解相关知识的欢迎下载,有问题的请给我留言,谢谢。
java,Blob字段操作,将图片或者文件保存到数据库中.zip
VS、VC++实现对象序列化保存到sqlite表blob类型字段中,包含blob字段的读取和保存,文档中有代码及说明实例。
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
简单写的一个小工具,把图片存入oracle中,按clob和blob两种方式存储,并读取图片
数据库为Oracle 10g,代码为Visual Studio 2008 VC++开发,软件中的代码有BLOB存储和读取,BFILE存储与读取,FTP上传与下载,以及数据库数据的添加与删除功能。程序已经将数据库的IP,用户名,密码去掉,使用的童鞋把...
Oralce 保存与读取Blob类型文件
Delphi 如何将二维数组数据 以Blob 存入数据库中 并读取 。先将二维数组转换维流文件,以内存流 Blob 形式存入到数据库中。 读取时以流获取 然后读出到数组中
BLOB通常用来保存图片、文件等二进制类型的数据。 二、使用mybatis操作blob 1、表结构如下: create table BLOB_FIELD ( ID VARCHAR2(64 BYTE) not null, TAB_NAME VARCHAR2(64 BYTE) not null,
这是一个C#.NET示例程序, 简单演示了如何使用C#操作SQLite数据库。同时演示了如何用C#讲图片二进制数据存储到数据库和从数据库读取图片二进制数据并显示在PictureBox.
在Oracle数据库存储超大文件时、以流的方式分段读取和保存,避免内存溢出。本工具类提供两个方法: 1、读取文件保存到Oracle数据库Blob字段(支持超大文件) 2、从数据库中读出大字段到文件中(分块读取)
java中sqllite数据库blob数据类型的存取.docx
主要介绍了Java从数据库中读取Blob对象图片并显示的方法,实例分析了Java读取数据库中Blob对象图片的技巧与操作方法,需要的朋友可以参考下
经典的上载图片,存到BLOB对象里面,附带读取图片
kettle通过java代码将数据库blob 字段抽取到本地文件