JDBC(No.11)

本文介绍如何使用Java JDBC操作数据库中的BLOB与TEXT类型字段,包括插入文件(如图片、音频)到BLOB字段及读取,插入文本到TEXT字段及读取的过程。

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

JDBC的五个步骤:

1、 建立连接,得到Connection对象(利用个用户名、密码和数据库服务器建立连接并且打开指定的数据

2、 利用Connection 对象获取Statement对象

3、 利用Statement对象执行指定的SQL语句

4、 处理结果

如果是查询:那么获取ResultSet对象,进行返回记录的相应操作

5、 善后处理

BLOB

BLOB用来存储大段的二进制数据, 例如图片, 音频, 视频. LONGBLOB最大4G

存储BLOB

PreparedStatement ps = conn.prepareStatement("insert into big_binary(file) values(?)");

File file = new File("src/cn/itcast/jdbc1/clob_blob/IMG_0007.jpg");

InputStream in = new FileInputStream(file);

ps.setBinaryStream(1, in, (int) file.length());

ps.executeUpdate();

读取BLOB

PreparedStatement ps = conn.prepareStatement("select file from big_binary");

ResultSet rs = ps.executeQuery();

if (rs.next()) {

InputStream in = rs.getBinaryStream(1);

// 这个InputStream就是从数据库中读取数据的流, 操作这个流来读取数据

}

存储TEXT

PreparedStatement ps = conn.prepareStatement("insert into clob(file) values(?)");

File file = new File("src/cn/itcast/jdbc1/clob_blob/ClobDemo.java");

Reader reader = new FileReader(file);

ps.setCharacterStream(1, reader, (int) file.length());

ps.executeUpdate()

也可以使用ps.setString()直接设置, 但如果字符串太大, 有可能超出虚拟机内存

读取TEXT

PreparedStatement ps = conn.prepareStatement("select file from clob");

ResultSet rs = ps.executeQuery();

if (rs.next()) {

Reader reader = rs.getCharacterStream(intcolumnIndex);

// 这个Reader就是从数据库中读取数据的流, 操作这个流来读取数据

}

也可以使用rs.getString(), 在字符串太大的情况下, 同样有可能超出虚拟机内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值