MySQL存储图片:解决大数据量问题(mysql图片存储c)
MySQL解决大数据量问题是大家在保存和访问大量图片数据时经常遇到的问题,这里针对如何将图片存储在MySQL中进行介绍。
首先,将图片存储到MySQL数据库中一般有两种方式:一种是将图片背景数据存储转换为Blob字段;另一种是将图片的URL地址存储到MySQL里。
下面给出将图片背景数据存储转换为Blob字段的具体实现方式:
1、在MySQL数据库中创建带有Blob字段的表,如:
CREATE TABLE IF NOT EXISTS image(
id INT NOT NULL AUTO_INCREMENT,
image_name VARCHAR(50) NOT NULL,
image_data Blob NOT NULL,
PRIMARY KEY (id)
);
2、将图片转换成字节数组,并将其封装成InputStream对象:
File file =new File(“image.jpg”);
byte[] buff=new byte[(int) file.length()];
InputStream inputStream=new FileInputStream(file);
inputStream.read(buff);
inputStream.close();
3、从MySQL中插入上述图片数据:
PreparedStatement statement=connection.prepareStatement(“insert into image values(null, image.jpg, ?)”);
statement.setBytes(1, buff);
4、读取MySQL中的图片数据:
byte[] buff= null;
PreparedStatement statement=connection.prepareStatement(“select * from image where image_name=?”);
statement.setString(1,”image.jpg”);
ResultSet resultSet=statement.executeQuery();
while(resultSet.next()){
buff=resultSet.getBytes(“image_data”);
}
5、使用Base64编码生成图片:
Base64.Encoder encoder=Base64.getEncoder();
String encodedString=encoder.encodeToString(buff);
6、使用Easeljs将其转换成图片:
var image=new Image();
image.src=”data:image/jpeg;base64,”+encodedString;
上面介绍了将图片存储到MySQL数据库中的步骤,另有一种方法是将图片存储到MySQL中的URL地址中:
1、在MySQL中创建一个存储URL地址的表:
CREATE TABLE IF NOT EXISTS image(
id INT NOT NULL AUTO_INCREMENT,
image_name VARCHAR(50) NOT NULL,
image_url VARCHAR(200) NOT NULL,
PRIMARY KEY (id)
);
2、通过网页链接将图片上传到图库,如:imgur.com,并将图片的链接地址存入MySQL表中:
String url=”http://imgur.com/.jpg”;
PreparedStatement statement=connection.prepareStatement(“insert into image values(null,image.jpg, ?)”);
statement.setString(1,url);
3、读取MySQL中的图片地址:
String imageUrl=null;
PreparedStatement statement=connection.prepareStatement(“select * from image where image_name=?”);
statement.setString(1,”image.jpg”);
ResultSet resultSet=statement.executeQuery();
while(resultSet.next()){
imageUrl=resultSet.getString(“image_url”);
}
4、使用JS或CSS库将图片渲染出来,比如使用Easeljs:
var image=new Image();
image.src=imageUrl;
以上就是在MySQL数据库中存储图片数据的两种方法介绍,可以根据具体的应用需要,选择合适的方法来存储图片数据,从而达到解决大数据量问题的目的。