您好,欢迎访问一九零五行业门户网

利用数据库如何存入BLOB格式图片,并从数据库中取出BLBO格式图片

这两天需要在图片存储性能方面做一些实验,无非就是两种方法,一是将图片以blob式存入数据库中,二是将图片路径存入数据库中,然后从数据库中提取出来。 实验数据是从1000张图片中遍历取出100张,样本比较小哈。。。。 下面贴出代码 数据库我使用的是国产达
这两天需要在图片存储性能方面做一些实验,无非就是两种方法,一是将图片以blob格式存入数据库中,二是将图片路径存入数据库中,然后从数据库中提取出来。
实验数据是从1000张图片中遍历取出100张,样本比较小哈。。。。
下面贴出代码
数据库我使用的是国产达梦数据库,如果要改其他的话也比较简单。
//package lianjie;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.drivermanager;import java.sql.preparedstatement;import java.sql.resultset;import java.sql.sqlexception;import java.sql.statement;import javax.imageio.imageio;public class dmtest {// 定义 dm jdbc 驱动串string jdbcstring = dm.jdbc.driver.dmdriver;// 定义 dm url 连接串string urlstring = jdbc:dm://localhost:5236/;// 定义连接用户名string username = sysdba;// 定义连接用户口令string password = sysdba;static //定义sql语句//string sqlstring =create table yujin3(a int,b int,c int);;string sqlstring1=insert into yujin3 values(123,14,1234);;// 定义连接对象static connection conn = null;static statement stmt = null; static preparedstatement ps = null; static resultset rs = null; //private static string sqlstring1;/* 加载 jdbc 驱动程序* @throws sqlexception 异常 */public void loadjdbcdriver() throws sqlexception {try {system.out.println(loading jdbc driver...);// 加载 jdbc 驱动程序//drivermanager.registerdriver(new dm.jdbc.driver.dmdriver()); class.forname(jdbcstring);} catch (classnotfoundexception e) {throw new sqlexception(load jdbc driver error1: + e.getmessage());} catch (exception ex) {throw new sqlexception(load jdbc driver error : + ex.getmessage());}}public void connect() throws sqlexception {try {system.out.println(connecting to dm server...);// 连接 dm 数据库conn = drivermanager.getconnection(urlstring, username, password);} catch (sqlexception e) {throw new sqlexception(connect to dm server error : + e.getmessage());}}/* 关闭连接* @throws sqlexception 异常 */public void disconnect() throws sqlexception {try {// 关闭连接conn.close();system.out.println(close);} catch (sqlexception e) {throw new sqlexception(close connection error : + e.getmessage());}}public static void main(string args[]) { dmtest basicapp = new dmtest(); // 加载驱动程序 try { basicapp.loadjdbcdriver(); } catch (sqlexception e2) { // todo auto-generated catch block e2.printstacktrace(); } try { basicapp.connect(); } catch (sqlexception e2) { // todo auto-generated catch block e2.printstacktrace(); } string sql = drop table blobtest; //string sql=null; try { stmt = conn.createstatement(); system.out.println(sql); stmt.executeupdate(sql); //创建表 sql = create table blobtest( + b_title int,+ b_text blob+ ); system.out.println(sql); stmt.executeupdate(sql); system.out.println(创建数据表成功!); sql=insert into blobtest(b_title,b_text)values(?,?); ps = conn.preparestatement(sql); //插入图片 //file file = new file(f:\\image\\yahoo.jpg); for(int i=0;i然后在相应路径下面就生成了100张图片,速度还是比较快的,关于实验数据大家可以去网上下载,或者减少样本,一两张都可以,只是要稍微修改下代码就行。

其它类似信息

推荐信息