概述
本教程操作环境:windows7系统、mysql8.0.22版,该方法适用于所有品牌电脑。
相关免费学习推荐:mysql视频教程
往mysql中添加图片的方法:
1.效果
不是存了个字符串哈,可以看左边的数据类型。
2. 获取blob数据
我们创建一个方法使用FileInputStream
读取图片,还有ByteArrayOutputStream
将读取的数据写入byte[]数组,然后
public static byte[] getImgStr(String path) throws IOException {
FileInputStream fis = new FileInputStream(path);
ByteArrayOutputStream out = new ByteArrayOutputStream();
int len = 0;
byte[] b = new byte[1024];
while ((len = fis.read(b))!= -1){
out.write(b,0,len);
}
//接收out
byte[] array = out.toByteArray();
fis.close();
out.close();
return array;
}
登录后复制
3.连接数据库并写入sql语句
使用Blob创建一个Blob,然后将我们获取的图片数据转换成blob类型,然后用PreparedStatement执行sql语句,因为它支持占位符并且有setBlob方法可以直接将我们的blob地址中的值写入数据库。然后就大功告成了。
public static void main(String[] args) {
/*
加载驱动
*/
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
String user= "root";
String password ="123456";
try {
Connection connection = DriverManager.getConnection(url,user,password);
/*
插入图片
*/
byte[] arr = getImgStr("图片地址");
Blob blob = connection.createBlob();
blob.setBytes(1,arr);
String sql = "insert into pictures (name,pic,date) values('张三',?,'2015-01-01')";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setBlob(1,blob);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException | IOException e) {
e.printStackTrace();
}
}
登录后复制
以上就是如何往mysql中添加图片的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是迷人眼睛为你收集整理的如何往mysql中添加图片的全部内容,希望文章能够帮你解决如何往mysql中添加图片所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复