import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.PreparedStatement ;
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
public class BlobDemo01{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
PreparedStatement pstmt = null ;
String name = "李兴华" ;
String sql = "INSERT INTO userblob(name,photo) VALUES (?,?) " ;
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
pstmt = conn.prepareStatement(sql) ;
File f = new File("d:" + File.separator + "mldn.gif") ; // 图片文件
InputStream input = null ;
input = new FileInputStream(f) ;
pstmt.setString(1,name) ; // 设置第一个“?”的内容
pstmt.setBinaryStream(2,input,(int)f.length()) ; // 设置输入流
pstmt.executeUpdate() ; // 更新数据库
pstmt.close() ;
conn.close() ; // 数据库关闭
}
};
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.PreparedStatement ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.sql.ResultSet ;
import java.io.InputStream ;
import java.io.InputStream ;
import java.io.OutputStream ;
public class BlobDemo02{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
PreparedStatement pstmt = null ;
ResultSet rs = null ;
int id = 1 ;
String sql = "SELECT name,photo FROM userblob WHERE id=?" ;
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setInt(1,id) ;
rs = pstmt.executeQuery() ; // 执行查询
if(rs.next()){
String name = rs.getString(1) ;
System.out.println("姓名:" + name) ;
InputStream input = rs.getBinaryStream(2) ;
File f = new File("d:" + File.separator + "loadmldn.gif") ; // 图片文件
OutputStream out = null ;
out = new FileOutputStream(f) ;
int temp = 0 ;
while((temp=input.read())!=-1){ // 边读边写
out.write(temp) ;
}
input.close() ;
out.close() ;
}
pstmt.close() ;
conn.close() ; // 数据库关闭
}
};
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.PreparedStatement ;
import java.sql.Blob ;
import java.sql.ResultSet ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.InputStream ;
import java.io.InputStream ;
import java.io.OutputStream ;
public class BlobDemo03{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
PreparedStatement pstmt = null ;
ResultSet rs = null ;
int id = 1 ;
String sql = "SELECT name,photo FROM userblob WHERE id=?" ;
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setInt(1,id) ;
rs = pstmt.executeQuery() ; // 执行查询
if(rs.next()){
String name = rs.getString(1) ;
System.out.println("姓名:" + name) ;
Blob b = rs.getBlob(2) ;
File f = new File("d:" + File.separator + "loadmldn.gif") ; // 图片文件
OutputStream out = null ;
out = new FileOutputStream(f) ;
out.write(b.getBytes(1,(int)b.length())) ;
out.close() ;
}
pstmt.close() ;
conn.close() ; // 数据库关闭
}
};
分享到:
相关推荐
- 从数据库读取二进制数据后,可以使用C++图像处理库如`libpng`、`FreeImage`或`OpenCV`,将二进制数据转换回图像格式,并显示在屏幕上。 8. **错误处理**: - 在整个过程中,必须处理可能出现的错误,如数据库...
MySQL二进制转换工具主要涉及...综上所述,MySQL二进制转换工具涉及了数据库的二进制数据处理、文件传输、权限管理以及网络安全等多个方面。在实际操作中,需要兼顾效率和安全性,遵循最佳实践来确保系统的稳定和安全。
在关系型数据库如MySQL、PostgreSQL、Oracle和SQL Server中,BLOB是一个特殊的数据类型,用于存储大量的二进制数据,例如图片、音频或视频文件。在SQL Server中,这种类型被称为`VARBINARY(MAX)`,它允许存储最多2^...
`MySQLUploader.java`文件可能包含处理MySQL数据库中图片或二进制数据的Java代码,使用JDBC连接,加载MySQL驱动,通过PreparedStatement执行SQL语句将二进制数据存入数据库。读取时,可以使用ResultSet的...
在 MySQL 中,BLOB 是一种二进制大对象类型,用于存储大型二进制数据,如图像、音频、视频等。BLOB 数据类型可以存储大量的二进制数据,但其长度不能超过 65535 字节。 将 BLOB 转换为文件 将 BLOB 转换为文件可以...
首先,BLOB是一个用于存储大块二进制数据的数据类型,包括四种变体:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB,它们的区别主要在于能存储的最大数据量。在MySQL中,你可以创建一个包含BLOB字段的表来存储这些非结构化...
MySQL中的BLOB类型是用于存储大量二进制数据的字段,比如图像、音频或文档等。BLOB全称为Binary Large Object,它提供了多种子类型,包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。这四种类型的区别主要在于它们能够...
大多数关系型数据库系统如MySQL、PostgreSQL、Oracle等支持BLOB(Binary Large Object)类型,用于存储大块二进制数据。 4. **插入数据**:将二进制流插入数据库时,我们需要使用SQL的INSERT语句,将二进制数据作为...
在将图片存入数据库前,需要选择一个适合存储二进制数据的数据库字段类型,如MySQL的BLOB(Binary Large Object)。以下是在SQL Server中存储图片的示例: ```sql INSERT INTO Images (ImageData) VALUES (@binary...
在SQL语句中,可以使用`BLOB`字段类型创建表,并使用`INSERT`语句将二进制数据插入到数据库中。例如,使用Python的MySQLdb库: ```python import MySQLdb import io from PIL import Image # 打开图片 img = Image...
综上所述,"用C#写的二进制图片在数据库中存储"是一个涉及二进制数据处理、数据库操作以及图像显示的综合实践,涵盖了C#编程、数据库管理和图像处理等多个IT领域的重要知识点。通过理解并掌握这些知识,开发者可以...
在数据库中,二进制数据(通常以BLOB,即Binary Large Object形式存在)可以存储任何类型的非文本数据,如图片、音频或视频文件。这是因为数据库系统通常不直接支持对这些非结构化数据的存储,而二进制数据格式则能...
1. 数据库中的二进制数据存储,特别是BLOB类型。 2. 使用C#的ADO.NET与数据库进行交互,包括创建数据库连接、执行SQL命令和处理查询结果。 3. 将二进制数据转换为文件,主要使用C#的System.IO命名空间中的FileStream...
常用的数据库如MySQL、PostgreSQL和MongoDB都支持二进制数据类型,如MySQL的BLOB(Binary Large Object)类型。在SQL语句中,我们可以将二进制数据插入到相应的字段中。比如在MySQL中: ```sql INSERT INTO images ...
- 常见的数据库如MySQL、SQL Server或SQLite都支持存储二进制数据。你需要创建一个能够容纳图片二进制数据的字段,通常使用`VARBINARY(MAX)`或`BLOB`类型。 - 使用ADO.NET或者Entity Framework等ORM(对象关系映射...
在IT领域,数据库常用于存储各种类型的数据,包括文本、数字以及图像等非...这个过程涉及到数据库操作、二进制数据处理以及图片编码等多个技术点,理解并掌握这些知识对于开发涉及数据库存储和检索图片的应用至关重要。
3. **插入图片数据**:将图片存入数据库前,需要将其读取并转换为二进制数据。在Python中,可以使用`io`和`pymysql`库实现: ```python import io import pymysql from PIL import Image # 读取图片并转换为二...
通过这个过程,开发者能够有效地在数据库中存储和检索二进制数据,如图片或其他文件。在JDBC-MySQL-BLOB-master这个项目中,你可能会找到更具体的实现示例和详细教程,帮助你进一步理解和应用这些概念。
MySQL Blob(Binary Large Object)类型是用来存储大对象数据的,如图像、音频、视频或任何二进制数据。`mysql_blob_tools`是一个针对MySQL数据库中Blob类型数据进行分析和统计的工具。它可以帮助用户处理和理解存储...
2. 选择数据库:常见的数据库如SQL Server、MySQL、SQLite等都支持二进制数据类型,如VARBINARY或BLOB,用于存储图片数据。 3. 插入数据:创建一个数据库表,包含一个字段用于存储图片的二进制数据,然后使用SQL语句...