- 浏览: 684338 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Hippyqq:
谢谢很有用,
java中遍历MAP的几种方法 -
XSoftlab:
超详细。。。Java map 详解 - 用法、遍历、排序、常用 ...
java中遍历MAP的几种方法 -
bobo22:
importnet.sf.fmj.ui.application ...
java来调用电脑视频摄像头拍照进行截图 -
qq981378640:
#include <stdio.h>
int ...
c语言中unsigned类型和普通类型间的转换 -
qq981378640:
楼主你这样有点复杂了,直接这样写更好更方便
#include ...
c语言中unsigned类型和普通类型间的转换
package com.fww.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author fu
* 类初始化加载的时候实现驱动的注册
* 本类实现的是一个数据库的连接的操作的工具类,
* 其中提供的是数据库的连接以及数据库最后的资源释放的操作
*
*/
public class JDBCUtil {
//数据库的连接时候的url
private static String url = "jdbc:mysql://localhost:3306/jdbc";
//数据库的用户
private static String user = "root";
//数据库用户对用的密码
private static String password = "sa";
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
*
* 获取数据库连接的操作
* @return 已经和数据库进行连接的connection对象
* @throws SQLException 数据库连接获取失败的操作
*/
public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url, user, password);
}
/**
* @param conn 已经和数据库进行连接的connection对象
* @param sql 需要进行执行的sql语句
* @return 预处理的对象preparedStatement
*/
public static PreparedStatement getPreparedStatement(Connection conn,String sql){
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}
/**
* 数据库连接箱资源释放的操作
* @param conn 和数据库进行连接的对象
* @param ps 预处理的preparedStatement对象
* @param rs sql执行的结果集
*/
public static void close(Connection conn, Statement ps, ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
2. [代码]字节流的操作(图片为实例) 跳至 [1] [2] [全屏预览]
package com.fww.test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
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.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.fww.util.JDBCUtil;
/**
* @author fu
* 实现的是一个大的文件的存放的操作,
* 典型的实例是一个图片的操作
* 实际上是一个使用到文件的字节流的操作的
*/
public class BlobTest {
public static void main(String[] args) {
// insert();//文件的存放的测试
read();
}
//插入的操作实例
static void insert(){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JDBCUtil.getConnection();
String sql = "insert into blob_test(blob_text) values(?)";
ps = JDBCUtil.getPreparedStatement(conn, sql);
//一个用于进行存放的图片数据
File file = new File("43.jpg");
InputStream in = new BufferedInputStream(new FileInputStream(file));
ps.setBinaryStream(1, in, (int)file.length());
int i = ps.executeUpdate();
in.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
JDBCUtil.close(conn, ps, rs);
}
}
//实现一个文件的读取的操作
static void read() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JDBCUtil.getConnection();
String sql = "select blob_text from blob_test where 1=?";
ps = JDBCUtil.getPreparedStatement(conn, sql);
ps.setInt(1, 1);
rs = ps.executeQuery();
while(rs.next()){
Blob blob = rs.getBlob(1);
InputStream in = blob.getBinaryStream();
//可以直接的拿到字节流的操作如下:
//in = rs.getBinaryStream(1);
File file = new File("test.jpg");
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();
}
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
JDBCUtil.close(conn, ps, rs);
}
}
}
转:http://www.oschina.net/code/snippet_1377870_26795 数据库中图片的操作(字节流的操作)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author fu
* 类初始化加载的时候实现驱动的注册
* 本类实现的是一个数据库的连接的操作的工具类,
* 其中提供的是数据库的连接以及数据库最后的资源释放的操作
*
*/
public class JDBCUtil {
//数据库的连接时候的url
private static String url = "jdbc:mysql://localhost:3306/jdbc";
//数据库的用户
private static String user = "root";
//数据库用户对用的密码
private static String password = "sa";
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
*
* 获取数据库连接的操作
* @return 已经和数据库进行连接的connection对象
* @throws SQLException 数据库连接获取失败的操作
*/
public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url, user, password);
}
/**
* @param conn 已经和数据库进行连接的connection对象
* @param sql 需要进行执行的sql语句
* @return 预处理的对象preparedStatement
*/
public static PreparedStatement getPreparedStatement(Connection conn,String sql){
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}
/**
* 数据库连接箱资源释放的操作
* @param conn 和数据库进行连接的对象
* @param ps 预处理的preparedStatement对象
* @param rs sql执行的结果集
*/
public static void close(Connection conn, Statement ps, ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
2. [代码]字节流的操作(图片为实例) 跳至 [1] [2] [全屏预览]
package com.fww.test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
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.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.fww.util.JDBCUtil;
/**
* @author fu
* 实现的是一个大的文件的存放的操作,
* 典型的实例是一个图片的操作
* 实际上是一个使用到文件的字节流的操作的
*/
public class BlobTest {
public static void main(String[] args) {
// insert();//文件的存放的测试
read();
}
//插入的操作实例
static void insert(){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JDBCUtil.getConnection();
String sql = "insert into blob_test(blob_text) values(?)";
ps = JDBCUtil.getPreparedStatement(conn, sql);
//一个用于进行存放的图片数据
File file = new File("43.jpg");
InputStream in = new BufferedInputStream(new FileInputStream(file));
ps.setBinaryStream(1, in, (int)file.length());
int i = ps.executeUpdate();
in.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
JDBCUtil.close(conn, ps, rs);
}
}
//实现一个文件的读取的操作
static void read() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JDBCUtil.getConnection();
String sql = "select blob_text from blob_test where 1=?";
ps = JDBCUtil.getPreparedStatement(conn, sql);
ps.setInt(1, 1);
rs = ps.executeQuery();
while(rs.next()){
Blob blob = rs.getBlob(1);
InputStream in = blob.getBinaryStream();
//可以直接的拿到字节流的操作如下:
//in = rs.getBinaryStream(1);
File file = new File("test.jpg");
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();
}
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
JDBCUtil.close(conn, ps, rs);
}
}
}
转:http://www.oschina.net/code/snippet_1377870_26795 数据库中图片的操作(字节流的操作)
发表评论
-
java应用CPU占用100%内存泄漏分析总结
2017-11-28 08:46 590转; http://www.blogjava.net/hank ... -
Java Mysql存取Blob数据
2014-10-21 12:54 1571当数据库字段为blob类型时 ,我们如果使用PreparedS ... -
关于日志的等级 的配置
2014-07-02 16:49 637#这里定义能显示到的最低级别,若定义到INFO级别,则看不到D ... -
Extjs中如何在一行textfield后面加几个字
2014-04-14 16:38 1537{ fieldLabel : '输入框', xtype : ' ... -
java 获得本地ip
2013-11-28 18:04 898Enumeration allNetInterfaces = ... -
java多线程下载的例子代码
2013-09-09 16:16 0java多线程下载的例子代码 import java.io.I ... -
java来调用电脑视频摄像头拍照进行截图
2013-09-09 15:34 10427packagecom.pengo.capture; i ... -
java中lucene解析word工具类
2013-09-09 15:32 1061java中lucene解析word工具类(读取word文档并查 ... -
Java 向oracle插入百万数据
2013-09-09 15:30 1555这里的表是没加索引的 ... -
java 写 excel
2013-08-28 10:29 1004import java.io.FileOutputStream ... -
list 排序
2013-06-20 20:43 1092import java.util.Collections; i ... -
java抓取网络图片放到本地
2013-05-07 10:39 4315import java.io.BufferedInputStr ... -
java代码发送JSON格式的httpPOST请求
2013-05-06 13:41 20409package com.test; import java. ... -
java操作excel(HSSF样式) .
2013-04-15 15:06 1996java操作excel(HSSF样式一) import ja ... -
JAVA+Ftpclient操作
2013-03-07 16:35 6592最近再做个ftp上传、下载的项目,用到的包是sun.net.f ... -
自动消除文本框中的空格;js清除空格问题,去除空格问题
2013-03-01 11:22 6324自动消除文本框中的空格;js清除空格问题,去除空格问题 要完成 ... -
java执行Linux命令 .
2012-12-26 09:29 1312/** * 修改Linux目录权限 * @param ... -
UUID生成类
2012-12-16 18:18 2510import java.net.InetAddress; im ... -
java反射获得类的字段和值
2012-12-10 17:26 1643import java.util.HashMap; impo ... -
jquery UI
2012-11-20 22:46 1349jQuery ui 是基于 jquery 基础类库开发的开源的 ...
相关推荐
本文将详细讲解如何将图片以字节流的形式存入数据库,然后从数据库中取出并显示。我们将以一个名为"SaveGetPicture_Demo"的示例项目作为参考,探讨这一过程。 首先,我们需要理解什么是字节流。字节流是计算机处理...
通过分析和运行这些代码,可以更深入地理解和实践图片二进制流存储到数据库的操作。 总之,将图片二进制流存储到数据库是一种实用的技术,适用于需要快速访问和高效管理大量图像数据的应用场景。正确处理二进制数据...
本篇将深入探讨如何使用C#将图片文件转换为字节流,并将其存储在TXT文本文件中。 首先,我们需要理解字节流的概念。字节流是数据在计算机内存或磁盘间传输的基本单元,它可以是输入流(读取数据)或输出流(写入...
4. **资源管理**:在读写文件和数据库操作中,正确关闭`FileStream`、`BinaryReader`、`SqlDataReader`和`SqlConnection`等对象是必要的,以释放系统资源。 综上所述,图片存入数据库和从数据库中读取图片的过程,...
这通常涉及读取图片文件,将其转换为字节流,再将这个字节流插入到数据库中。 数据库写入图片的操作可能包括以下步骤: 1. 打开数据库:使用易语言的数据库接口,如ODBC或ADO,建立与数据库的连接。 2. 选择或创建...
在C#编程中,将图片转换为数据流并存储到SQL Server数据库中,以及从数据库中读取数据流再恢复为图片,是一项常见的任务。这通常用于存储用户头像、产品图片等,节省磁盘空间并提高数据传输效率。下面我们将详细讲解...
当图片上传到服务器时,会被转换成字节流并存入数据库。 2. 数据库表设计: 创建一个包含图片信息的数据库表,一般需要有字段如`id`(主键),`image_data`(存储图片的BLOB字段),`filename`(原始图片文件名),`...
这个Demo展示了如何将图片转换为二进制流,然后将这个二进制流存储到数据库,以及如何从数据库中读取这些二进制流并重新显示图片。下面将详细解释这一过程涉及的关键知识点。 1. 图片与二进制流转换: 图片本质上...
在读取时,需要将二进制数据转换回字节流,再用`MemoryStream`构造Image对象。 6. **错误处理和资源管理**:在操作数据库时,确保正确处理可能出现的异常,并在完成操作后关闭连接和释放资源,避免资源泄露。 通过...
### 使用Gridview绑定数据库中的图片 #### 背景与目的 在Web应用程序开发中,尤其是在ASP.NET项目中,经常...此外,通过将图片数据存储在数据库中,可以方便地进行备份和恢复操作,这对于保证数据的安全性非常重要。
在VB(Visual Basic)编程中,将图片存入Access数据库并进行相关操作是常见的数据库管理需求。Access数据库虽然主要用于存储结构化数据,如文本、数字等,但通过特定方法,也能处理二进制大型对象(BLOB,Binary ...
4. **执行SQL语句**:将图片文件的字节流设置为SQL语句的参数,然后通过Statement或PreparedStatement对象执行SQL。PreparedStatement更安全,因为它可以防止SQL注入攻击。 5. **批处理操作**:为了提高性能,可以...
- 使用VARBINARY(MAX):将图片转换为字节流,然后将这些字节存储到数据库中的VARBINARY(MAX)字段。这可以通过编程语言如C#、Java、Python等实现,通过数据库连接执行INSERT语句。 - 图像路径存储:另一种方法是仅...
3. **图像编码与存储**:由于数据库通常不直接支持二进制大对象(BLOB)数据类型,所以图像需要转换成字节流。可以使用`QImage`或`QPixmap`的`save`函数将图像保存为内存中的字节数组,然后用`QByteArray`存储。在...
在Java编程中,Blob(Binary Large Object)是用于存储大量二进制数据的数据类型,常被用在数据库中存储图片、文件等非文本信息。本教程将深入讲解如何使用Java处理Blob字段,以便将图片或文件保存到数据库中。这个...
- 图片数据首先会被转换为字节数组,然后使用`SqlCommand`对象的`ExecuteNonQuery`方法将这些字节插入到数据库表中。 2. **图片读取**: - 要从数据库中读取图片,可以执行一个`SELECT`查询,将返回的`VARBINARY`...
本示例主要涉及的是如何将图片通过BASE64编码加密后存入数据库的Blob类型字段,并能从数据库中取出这些数据再还原成原始图片。以下是相关知识点的详细说明: 1. **BASE64编码**:BASE64是一种用于将二进制数据转换...
6. **安全性与性能考虑**:在实际应用中,还需要考虑一些安全和性能优化措施,比如验证文件类型、限制文件大小、使用流操作减少内存占用,以及可能的缓存策略来提高图片加载速度。 总之,ASP.NET提供了一套完善的...
在上述代码中,`File.ReadAllBytes`用于读取图片文件并将其转换为字节数组,而`File.WriteAllBytes`则将从数据库获取的字节数组写回为图片文件。`SqlCommand`对象用于执行SQL语句,`Parameters.AddWithValue`用于...
在Java Web开发中,将图片数据...总的来说,Java Web读取数据库存储的图片涉及数据库设计、JDBC操作、数据流处理以及HTTP响应。通过这些技术,我们可以在Web应用中动态地展示由数据库存储的图片,实现灵活的数据管理。