java代码修改数据库里图片_java如何修改sql存储的图片?
展开全部
:获取数据库连接
1:导入mysql的驱动jar包,mysql-connector-java-5.1.8-bin.jar
2:写代码连接数据库,如下32313133353236313431303231363533e58685e5aeb931333363373736:
1 /**
2 *
3 */
4 package com.hlcui.file;
5
6 import java.sql.Connection;
7 import java.sql.DriverManager;
8 import java.sql.SQLException;
9
10 /**
11 * @author Administrator
12 *
13 */
14 public class DBUtil {
15 // 定义数据库连接参数
16 public static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";
17 public static final String URL = "jdbc:mysql://localhost:3306/test";
18 public static final String USERNAME = "root";
19 public static final String PASSWORD = "root";
20
21 // 注册数据库驱动
22 static {
23 try {
24 Class.forName(DRIVER_CLASS_NAME);
25 } catch (ClassNotFoundException e) {
26 System.out.println("注册失败!");
27 e.printStackTrace();
28 }
29 }
30
31 // 获取连接
32 public static Connection getConn() throws SQLException {
33 return DriverManager.getConnection(URL, USERNAME, PASSWORD);
34 }
35
36 // 关闭连接
37 public static void closeConn(Connection conn) {
38 if (null != conn) {
39 try {
40 conn.close();
41 } catch (SQLException e) {
42 System.out.println("关闭连接失败!");
43 e.printStackTrace();
44 }
45 }
46 }
47 //测试
48 public static void main(String[] args) throws SQLException {
49 System.out.println(DBUtil.getConn());
50 }
51
52 }
三:封装读取图片的流
1 /**
2 *
3 */
4 package com.hlcui.file;
5
6 import java.io.File;
7 import java.io.FileInputStream;
8 import java.io.FileOutputStream;
9 import java.io.IOException;
10 import java.io.InputStream;
11
12 /**
13 * @author Administrator
14 *
15 */
16 public class ImageUtil {
17
18 // 读取本地图片获取输入流
19 public static FileInputStream readImage(String path) throws IOException {
20 return new FileInputStream(new File(path));
21 }
22
23 // 读取表中图片获取输出流
24 public static void readBin2Image(InputStream in, String targetPath) {
25 File file = new File(targetPath);
26 String path = targetPath.substring(0, targetPath.lastIndexOf("/"));
27 if (!file.exists()) {
28 new File(path).mkdir();
29 }
30 FileOutputStream fos = null;
31 try {
32 fos = new FileOutputStream(file);
33 int len = 0;
34 byte[] buf = new byte[1024];
35 while ((len = in.read(buf)) != -1) {
36 fos.write(buf, 0, len);
37 }
38 fos.flush();
39 } catch (Exception e) {
40 e.printStackTrace();
41 } finally {
42 if (null != fos) {
43 try {
44 fos.close();
45 } catch (IOException e) {
46 e.printStackTrace();
47 }
48 }
49 }
50 }
51 }
四:实现图片(本地、数据库互相传输)
1 /**
2 *
3 */
4 package com.hlcui.file;
5
6 import java.io.FileInputStream;
7 import java.io.InputStream;
8 import java.sql.Connection;
9 import java.sql.PreparedStatement;
10 import java.sql.ResultSet;
11 import java.sql.SQLException;
12
13 /**
14 * @author Administrator 测试写入数据库以及从数据库中读取
15 */
16 public class ImageDemo {
17
18 // 将图片插入数据库
19 public static void readImage2DB() {
20 String path = "D:/1.png";
21 Connection conn = null;
22 PreparedStatement ps = null;
23 FileInputStream in = null;
24 try {
25 in = ImageUtil.readImage(path);
26 conn = DBUtil.getConn();
27 String sql = "insert into photo (id,name,photo)values(?,?,?)";
28 ps = conn.prepareStatement(sql);
29 ps.setInt(1, 1);
30 ps.setString(2, "Tom");
31 ps.setBinaryStream(3, in, in.available());
32 int count = ps.executeUpdate();
33 if (count > 0) {
34 System.out.println("插入成功!");
35 } else {
36 System.out.println("插入失败!");
37 }
38 } catch (Exception e) {
39 e.printStackTrace();
40 } finally {
41 DBUtil.closeConn(conn);
42 if (null != ps) {
43 try {
44 ps.close();
45 } catch (SQLException e) {
46 e.printStackTrace();
47 }
48 }
49 }
50
51 }
52
53 // 读取数据库中图片
54 public static void readDB2Image() {
55 String targetPath = "D:/image/1.png";
56 Connection conn = null;
57 PreparedStatement ps = null;
58 ResultSet rs = null;
59 try {
60 conn = DBUtil.getConn();
61 String sql = "select * from photo where id =?";
62 ps = conn.prepareStatement(sql);
63 ps.setInt(1, 1);
64 rs = ps.executeQuery();
65 while (rs.next()) {
66 InputStream in = rs.getBinaryStream("photo");
67 ImageUtil.readBin2Image(in, targetPath);
68 }
69 } catch (Exception e) {
70 e.printStackTrace();
71 } finally {
72 DBUtil.closeConn(conn);
73 if (rs != null) {
74 try {
75 rs.close();
76 } catch (SQLException e) {
77 e.printStackTrace();
78 }
79 }
80 if (ps != null) {
81 try {
82 ps.close();
83 } catch (SQLException e) {
84 e.printStackTrace();
85 }
86 }
87
88 }
89 }
90 //测试
91 public static void main(String[] args) {
92 //readImage2DB();
93 readDB2Image();
94 }
95 }
本回答由网友推荐
已赞过
已踩过<
你对这个回答的评价是?
评论
收起
java代码修改数据库里图片_java如何修改sql存储的图片?相关推荐
- java控制台输出图书馆管理系统(只用java代码不用数据库和GUI等)
java控制台输出图书馆管理系统(只用java代码不用数据库和GUI,java入门的新手秒懂) 在个项目中,我只用数组保存数据,和只用for循环和if条件语句来完成,连数组工具类都没用,所以导致要用到 ...
- 用Java代码计算磁盘里的文件大小
用Java代码计算磁盘里的文件大小 原理 代码展示 总结 原理 拿到一个文件后我们需要先判断文件是不是标准文件调用isFile()方法,如果是标准文件直接调用length()方法求文件大小,不是标准文 ...
- java代码对数据库数据的CRUD操作
java代码对数据库数据的CRUD操作 前言 一.CRUD.JDBC是什么? 二.操作步骤 1.连接mqsql数据库.加载数据库驱动 2.对数据库中的表进行增.删.改.查 总结 前言 对于刚刚学习完J ...
- java改变数据库配置文件信息_JAVA应用修改数据库链接信息一般在哪个配置文件中?...
[多选题]测试软件按照技术架构分可以分为哪些类别 [单选题]成本加成定价法虽然简便易行,但它也存在一定的缺点.缺点主要是 [判断题]在两性特征中,女性的分配特性更好一点,而男性的左右半球交叉好一点. ...
- java oracle 图片_JAVA读取Oracle中的blob图片字段并显示
JAVA读取Oracle中的blob图片字段并显示 近期,在给客户做一个Demo页面时,需要用JAVA读取Oracle中的blob图片字段并显示,在此过程中,遇到一些问题,例如:连接Oracle数据库 ...
- MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据
前两篇教程我们介绍了如何搭建MongoDB的本地环境. 这篇教程我们会介绍如何使用Java代码来连接MongoDB. 如果您是基于Maven进行依赖管理的Java项目,只需要在您的pom.xml里加入 ...
- Java代码有效和片段有效_Java 9 尝鲜之交互式编程环境
Java 9 JShell--Java 9 的交互式编程环境 本文要求读者有基本的 Java 知识. Tips Java 9 的代码由于提供了新特性,所以有些代码并不支持向后兼容.也就是说,用 Jav ...
- java如何向数据库中插入数据_如何控制Java代码向数据库中插入数据
慕哥6287543 Java程序向数据库中插入数据,代码如下:123456789101112131415161718192021222324252627282930313233343536373839 ...
- Java代码判断数据库中某张表是否存在
最近在开发一个同步数据的统计任务的时候遇到一个问题:要在Java代码中判断数据库中某张表是否存在,查资料后,总结了以下两种方法: 1.使用JdbcTemplate bean public boolea ...
- php数据库的值嵌入input_求助:问个关于用INPUT提取数据库里的值然后修改的问题。...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这里是前面语言: ID 图书名称 图书编号 图书价格 是否推荐 $query=mysql_query("select * from tb_boo ...
最新文章
- WanaCrypt0r勒索蠕虫完全分析报告
- How HBO’s Silicon Valley built “Not Hotdog” with mobile TensorFlow, Keras React Native
- 一日一技:在Ocelot网关中统一配置Swagger
- 乔安监控云存储能存多长时间_干货 | 监控磁盘阵列知识介绍,不了解还不来看看?...
- 未来编程语言的走向_在编程方面我从失败走向成功的过程以及让我成功的原因
- Win7虚拟无线AP以及Android手机抓包
- java 短路判断_细数Java最坑爹的10大功能点
- Case:MySQL Federated存储引擎引起的慢SQL优化
- 【Codeforces	1426	F】Number of Subsequences,字符串计数DP
- 社区发现(一)--算法综述
- arraylist 初始化_ArrayList 和 LinkedList 哪个更占空间?
- 觉得清楚,跟说清楚写清楚,两回事
- eclipse打包成jar_SpringBoot系列(三)- 用 jar的方式运行springboot项目
- webstorm破解之jar包破解(2018)
- 贪心算法(贪婪算法)
- SpringBoot:yml文件详解
- 清理offset_kafka数据清理
- 调研分析:全球与中国乙氧呋草黄市场现状及未来发展趋势
- 各编程语言中的注释格式
- 融云钜惠来袭,新客尝鲜首月 2.7 折起,超值套餐 6 折起
热门文章
- Dubbo(RPC原理、Dubbo架构负载均衡配置方式)(1)
- SpringBoot核心原理:自动配置、事件驱动、Condition
- 一文看懂Java锁机制
- 年薪 50w+ 的程序员,是这样写代码的?
- 高并发下线程安全的单例模式(最全最经典,值得收藏)
- NIO与零拷贝和AIO
- Java的Stack类
- 必知必会SQL(贰) --索引(聚集[簇]索引和非聚[簇]集索引) vs 全文本索引
- Java线程的5种状态及切换
- [洛谷 P3992] [BJOI2017]开车