展开全部

:获取数据库连接

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存储的图片?相关推荐

  1. java控制台输出图书馆管理系统(只用java代码不用数据库和GUI等)

    java控制台输出图书馆管理系统(只用java代码不用数据库和GUI,java入门的新手秒懂) 在个项目中,我只用数组保存数据,和只用for循环和if条件语句来完成,连数组工具类都没用,所以导致要用到 ...

  2. 用Java代码计算磁盘里的文件大小

    用Java代码计算磁盘里的文件大小 原理 代码展示 总结 原理 拿到一个文件后我们需要先判断文件是不是标准文件调用isFile()方法,如果是标准文件直接调用length()方法求文件大小,不是标准文 ...

  3. java代码对数据库数据的CRUD操作

    java代码对数据库数据的CRUD操作 前言 一.CRUD.JDBC是什么? 二.操作步骤 1.连接mqsql数据库.加载数据库驱动 2.对数据库中的表进行增.删.改.查 总结 前言 对于刚刚学习完J ...

  4. java改变数据库配置文件信息_JAVA应用修改数据库链接信息一般在哪个配置文件中?...

    [多选题]测试软件按照技术架构分可以分为哪些类别 [单选题]成本加成定价法虽然简便易行,但它也存在一定的缺点.缺点主要是 [判断题]在两性特征中,女性的分配特性更好一点,而男性的左右半球交叉好一点. ...

  5. java oracle 图片_JAVA读取Oracle中的blob图片字段并显示

    JAVA读取Oracle中的blob图片字段并显示 近期,在给客户做一个Demo页面时,需要用JAVA读取Oracle中的blob图片字段并显示,在此过程中,遇到一些问题,例如:连接Oracle数据库 ...

  6. MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据

    前两篇教程我们介绍了如何搭建MongoDB的本地环境. 这篇教程我们会介绍如何使用Java代码来连接MongoDB. 如果您是基于Maven进行依赖管理的Java项目,只需要在您的pom.xml里加入 ...

  7. Java代码有效和片段有效_Java 9 尝鲜之交互式编程环境

    Java 9 JShell--Java 9 的交互式编程环境 本文要求读者有基本的 Java 知识. Tips Java 9 的代码由于提供了新特性,所以有些代码并不支持向后兼容.也就是说,用 Jav ...

  8. java如何向数据库中插入数据_如何控制Java代码向数据库中插入数据

    慕哥6287543 Java程序向数据库中插入数据,代码如下:123456789101112131415161718192021222324252627282930313233343536373839 ...

  9. Java代码判断数据库中某张表是否存在

    最近在开发一个同步数据的统计任务的时候遇到一个问题:要在Java代码中判断数据库中某张表是否存在,查资料后,总结了以下两种方法: 1.使用JdbcTemplate bean public boolea ...

  10. php数据库的值嵌入input_求助:问个关于用INPUT提取数据库里的值然后修改的问题。...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这里是前面语言: ID 图书名称 图书编号 图书价格 是否推荐 $query=mysql_query("select * from tb_boo ...

最新文章

  1. WanaCrypt0r勒索蠕虫完全分析报告
  2. How HBO’s Silicon Valley built “Not Hotdog” with mobile TensorFlow, Keras React Native
  3. 一日一技:在Ocelot网关中统一配置Swagger
  4. 乔安监控云存储能存多长时间_干货 | 监控磁盘阵列知识介绍,不了解还不来看看?...
  5. 未来编程语言的走向_在编程方面我从失败走向成功的过程以及让我成功的原因
  6. Win7虚拟无线AP以及Android手机抓包
  7. java 短路判断_细数Java最坑爹的10大功能点
  8. Case:MySQL Federated存储引擎引起的慢SQL优化
  9. 【Codeforces 1426 F】Number of Subsequences,字符串计数DP
  10. 社区发现(一)--算法综述
  11. arraylist 初始化_ArrayList 和 LinkedList 哪个更占空间?
  12. 觉得清楚,跟说清楚写清楚,两回事
  13. eclipse打包成jar_SpringBoot系列(三)- 用 jar的方式运行springboot项目
  14. webstorm破解之jar包破解(2018)
  15. 贪心算法(贪婪算法)
  16. SpringBoot:yml文件详解
  17. 清理offset_kafka数据清理
  18. 调研分析:全球与中国乙氧呋草黄市场现状及未来发展趋势
  19. 各编程语言中的注释格式
  20. 融云钜惠来袭,新客尝鲜首月 2.7 折起,超值套餐 6 折起

热门文章

  1. Dubbo(RPC原理、Dubbo架构负载均衡配置方式)(1)
  2. SpringBoot核心原理:自动配置、事件驱动、Condition
  3. 一文看懂Java锁机制
  4. 年薪 50w+ 的程序员,是这样写代码的?
  5. 高并发下线程安全的单例模式(最全最经典,值得收藏)
  6. NIO与零拷贝和AIO
  7. Java的Stack类
  8. 必知必会SQL(贰) --索引(聚集[簇]索引和非聚[簇]集索引) vs 全文本索引
  9. Java线程的5种状态及切换
  10. [洛谷 P3992] [BJOI2017]开车