共计 1629 个字符,预计需要花费 5 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章给大家分享的是有关往 mysql 中添加图片的方法的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考。一起跟随丸趣 TV 小编过来看看吧。
往 mysql 中添加图片的方法:首先创建一个方法使用 FileInputStream 读取图片;然后连接数据库并写入 sql 语句,用 PreparedStatement 执行 sql 语句。
相关免费学习推荐: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 中添加图片的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
向 AI 问一下细节
丸趣 TV 网 – 提供最优质的资源集合!