您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第17章:Java数据库编程】_处理大数据对象(2)—处理BLOB数据
发布时间:2021-01-11 13:53:07编辑:雪饮阅读()
前文CLOB处理主要是用来处理大量文本的,而BLOB则是处理二进制内容的(文件)
在数据库中二进制内容存放字段类型为longblob,也同样和longtext一样最大可存储4G
向数据库中longblob字段存储一个图片
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.PreparedStatement ;
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
public class Hello{
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/xynes" ;
public static final String DBUSER = "root" ;
public static final String DBPASS = "" ;
public static void main(String args[]) throws Exception{
Class.forName(DBDRIVER) ;
Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "INSERT INTO v9_admin(username,avatar) VALUES (?,?) " ;
PreparedStatement pstmt = conn.prepareStatement(sql) ;
File file = new File("d:" + File.separator + "kasumi.png") ;
InputStream input = new FileInputStream(file);
pstmt.setString(1,"kasumi") ;
pstmt.setBinaryStream(2,input,(int)file.length());
pstmt.executeUpdate() ;
pstmt.close() ;
conn.close() ;
}
};
从数据库中longblob字段中取出一个图片
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.PreparedStatement ;
import java.io.File;
import java.io.InputStream ;
import java.io.FileOutputStream ;
import java.sql.ResultSet ;
import java.io.OutputStream ;
public class Hello{
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/xynes" ;
public static final String DBUSER = "root" ;
public static final String DBPASS = "" ;
public static void main(String args[]) throws Exception{
Class.forName(DBDRIVER) ;
Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "select username,avatar from v9_admin where userid=?" ;
PreparedStatement pstmt = conn.prepareStatement(sql) ;
pstmt.setInt(1,2) ;
ResultSet rs=pstmt.executeQuery() ;
if(rs.next()){
String username=rs.getString(1);
InputStream input = rs.getBinaryStream(2);
File file = new File("d:" + File.separator + "kasumi.png");
OutputStream out = new FileOutputStream(file);
int temp = 0 ;
while((temp=input.read())!=-1){
out.write(temp) ;
}
input.close() ;
out.close() ;
}
pstmt.close() ;
conn.close() ;
}
};
D:\>javac Hello.java
D:\>java Hello
从数据库中longblob字段中取出一个图片(使用Blob)
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.PreparedStatement ;
import java.io.File;
import java.io.FileOutputStream ;
import java.sql.ResultSet ;
import java.io.OutputStream ;
import java.sql.Blob ;
public class Hello{
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/xynes" ;
public static final String DBUSER = "root" ;
public static final String DBPASS = "" ;
public static void main(String args[]) throws Exception{
Class.forName(DBDRIVER) ;
Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "select username,avatar from v9_admin where userid=?" ;
PreparedStatement pstmt = conn.prepareStatement(sql) ;
pstmt.setInt(1,2) ;
ResultSet rs=pstmt.executeQuery() ;
if(rs.next()){
String username=rs.getString(1);
Blob b = rs.getBlob(2) ;
File file = new File("d:" + File.separator + "kasumi.png");
OutputStream out = new FileOutputStream(file);
out.write(b.getBytes(1,(int)b.length())) ;
out.close() ;
}
pstmt.close() ;
conn.close() ;
}
};
D:\>javac Hello.java
D:\>java Hello
关键字词:java,数据库,BLOB
相关文章
- 【第17章:Java数据库编程】_处理大数据对象(1)—处理CLOB
- 【第17章:Java数据库编程】_PreparedStatement接口
- 【第17章:Java数据库编程】_ResultSet接口
- 【第17章:Java数据库编程】_执行数据库更新操作
- 【第17章:Java数据库编程】_JDBC操作步骤及数据库连接
- 【第16章:Annotation】_深入Annotation
- 【第16章:Annotation】_反射与Annotation
- 【第16章:Annotation】_自定义Annotation
- 【第16章:Annotation】_系统内建Annotation
- 【第15章:Java反射机制】_工厂设计模式