jdbc 3.0

本文介绍如何使用Java代码将图片和文本数据保存为数据库中的Blob和Clob类型,并演示了如何从数据库中读取这两种类型的数据并写入本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.将Blob、Clob类型数据保存到数据库

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.FileReader;
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.PreparedStatement;
 7 
 8 
 9 public class Test4 {
10     /**
11      * 将图片、文本保存在数据库
12      * Blob、Clob
13      * @author 容杰龙
14      */
15     public static void main(String[] args) {
16         try {
17             Class.forName("com.mysql.jdbc.Driver");
18             String url="jdbc:mysql://localhost:3306/rjl";
19             String user="rjl";
20             String password="123";
21             Connection conn = DriverManager.getConnection(url, user, password);
22             String sql1="insert into pic(img,msg) values(?,?)";
23             
24             File file=new File("C:/Users/Rong/Desktop/qq.png");
25             FileInputStream inputStream = new FileInputStream(file);
26             
27             FileReader reader = new FileReader("C:/Users/Rong/Desktop/msg.txt");
28             
29             PreparedStatement ps = conn.prepareStatement(sql1);
30             //字节流-二进制图像
31             ps.setBlob(1, inputStream);
32             //字符流
33             ps.setClob(2, reader);
34             int count = ps.executeUpdate();
35             if (count>0) {
36                 System.out.println("添加成功!");
37             }
38         } catch (Exception e) {
39             e.printStackTrace();
40         }
41 
42     }
43 
44 }
View Code

 

2.从数据库表里读取Blob、Clob类型数据

 1 package com.rong.web;
 2 
 3 import java.io.FileOutputStream;
 4 import java.io.FileWriter;
 5 import java.io.InputStream;
 6 import java.io.Reader;
 7 import java.sql.Connection;
 8 import java.sql.DriverManager;
 9 import java.sql.PreparedStatement;
10 import java.sql.ResultSet;
11 
12 public class Test5 {
13 
14 
15     /**
16      * 读取MySQL数据库Blob、Clob类型的数据到硬盘
17      * @author 容杰龙
18      */
19     public static void main(String[] args) {
20         try {
21             Class.forName("com.mysql.jdbc.Driver");
22             String url="jdbc:mysql://localhost:3306/rjl?user=root&password=123123";
23             Connection conn = DriverManager.getConnection(url);
24             String sql="select * from pic where id=?";
25             PreparedStatement ps = conn.prepareStatement(sql);
26             ps.setInt(1, 1);
27             ResultSet rs = ps.executeQuery();
28             while(rs.next()){
29                 //获取字节输入流
30                 InputStream inputStream = rs.getAsciiStream("img");
31                 //获取字符输入流
32                 Reader reader = rs.getCharacterStream("msg");
33                 byte[] bytes=new byte[1024];
34                 char[] chars=new char[1024];
35                 int len=0;
36                 //创建文件输出流,设置文件存储的硬盘位置
37                 FileOutputStream fos = new FileOutputStream("C:/Users/Administrator/Desktop/jdbc.png");
38                 FileWriter fw = new FileWriter("C:/Users/Administrator/Desktop/jdbc.txt");
39                 //字节输出
40                 while ((len=inputStream.read(bytes))!=-1) {
41                     fos.write(bytes, 0, len);
42                 }
43                 fos.close();
44                 inputStream.close();
45                 len=0;
46                 //字符输出
47                 while ((len=reader.read(chars))!=-1) {
48                     fw.write(chars, 0, len);
49                 }
50                 fw.close();
51                 reader.close();
52                 
53             }
54         } catch (Exception e) {
55             e.printStackTrace();
56         }
57 
58     }
59 
60 }

 

 1 package com.rong.web;
 2 
 3 import java.io.FileOutputStream;
 4 import java.io.FileWriter;
 5 import java.io.InputStream;
 6 import java.io.Reader;
 7 import java.sql.Blob;
 8 import java.sql.Clob;
 9 import java.sql.Connection;
10 import java.sql.DriverManager;
11 import java.sql.PreparedStatement;
12 import java.sql.ResultSet;
13 
14 public class Test6 {
15 
16     /**
17      * 读取MySQL数据库Blob、Clob类型的数据到硬盘
18      * @author 容杰龙
19      */
20     public static void main(String[] args) {
21         try {
22             Class.forName("com.mysql.jdbc.Driver");
23             String url="jdbc:mysql://localhost:3306/rjl?user=root&password=123123";
24             Connection conn = DriverManager.getConnection(url);
25             String sql="select * from pic where id=?";
26             PreparedStatement ps = conn.prepareStatement(sql);
27             ps.setInt(1, 1);
28             ResultSet rs = ps.executeQuery();
29             while(rs.next()){
30                 //获取blob对象
31                 Blob blob = rs.getBlob("img");
32                 //获取二进制字节输入流
33                 InputStream binaryStream = blob.getBinaryStream();
34                 //////////////////////////////////////////////////
35                 
36                 //获取clob对象
37                 Clob clob = rs.getClob("msg");
38                 //获取字符输入流
39                 Reader characterStream = clob.getCharacterStream();
40                 
41                 byte[] bytes=new byte[1024];
42                 char[] chars=new char[1024];
43                 int len=0;
44                 //创建文件输出流,设置文件存储的硬盘位置
45                 FileOutputStream fos = new FileOutputStream("C:/Users/Administrator/Desktop/jdbc.png");
46                 FileWriter fw = new FileWriter("C:/Users/Administrator/Desktop/jdbc.txt");
47                 //字节输出
48                 /////////////////////////////////
49 //                byte[] bs = rs.getBytes("img");
50 //                fos.write(bs);
51                 ////////////////////////////////////
52                 while ((len=binaryStream.read(bytes))!=-1) {
53                     fos.write(bytes, 0, len);
54                 }
55                 fos.close();
56                 binaryStream.close();
57                 len=0;
58                 //字符输出
59                 while ((len=characterStream.read(chars))!=-1) {
60                     fw.write(chars, 0, len);
61                 }
62                 fw.close();
63                 characterStream.close();
64                 
65             }
66         } catch (Exception e) {
67             e.printStackTrace();
68         }
69 
70     }
71 
72 }
View Code

 

转载于:https://www.cnblogs.com/57rongjielong/p/7775294.html

【基于QT的调色板】是一个使用Qt框架开发的色彩选择工具,类似于Windows操作系统中常见的颜色选取器。Qt是一个跨平台的应用程序开发框架,广泛应用于桌面、移动和嵌入式设备,支持C++和QML语言。这个调色板功能提供了横竖两种渐变模式,用户可以方便地选取所需的颜色值。 在Qt中,调色板(QPalette)是一个关键的类,用于管理应用程序的视觉样式。QPalette包含了一系列的颜色角色,如背景色、前景色、文本色、高亮色等,这些颜色可以根据用户的系统设置或应用程序的需求进行定制。通过自定义QPalette,开发者可以创建具有独特视觉风格的应用程序。 该调色板功能可能使用了QColorDialog,这是一个标准的Qt对话框,允许用户选择颜色。QColorDialog提供了一种简单的方式来获取用户的颜色选择,通常包括一个调色板界面,用户可以通过滑动或点击来选择RGB、HSV或其他色彩模型中的颜色。 横渐变取色可能通过QGradient实现,QGradient允许开发者创建线性或径向的色彩渐变。线性渐变(QLinearGradient)沿直线从一个点到另一个点过渡颜色,而径向渐变(QRadialGradient)则以圆心为中心向外扩散颜色。在调色板中,用户可能可以通过滑动条或鼠标拖动来改变渐变的位置,从而选取不同位置的颜色。 竖渐变取色则可能是通过调整QGradient的方向来实现的,将原本水平的渐变方向改为垂直。这种设计可以提供另一种方式来探索颜色空间,使得选取颜色更为直观和便捷。 在【colorpanelhsb】这个文件名中,我们可以推测这是与HSB(色相、饱和度、亮度)色彩模型相关的代码或资源。HSB模型是另一种常见且直观的颜色表示方式,与RGB或CMYK模型不同,它以人的感知为基础,更容易理解。在这个调色板中,用户可能可以通过调整H、S、B三个参数来选取所需的颜色。 基于QT的调色板是一个利用Qt框架和其提供的色彩管理工具,如QPalette、QColorDialog、QGradient等,构建的交互式颜色选择组件。它不仅提供了横竖渐变的色彩选取方式,还可能支持HSB色彩模型,使得用户在开发图形用户界面时能更加灵活和精准地控制色彩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值