Java
来源:互联网 发布:实验楼 知乎 编辑:程序博客网 时间:2024/06/16 21:48
Blob是指二进制大对象(Binary Large Object),而Clob是指大字符对象(Character Large Objec),因此其中Blob是为存储大的二进制数据而设计的,而Clob是为存储大的文本数据而设计的。JDBC的PreparedStatement和ResultSet都提供了相应的方法来支持Blob和Clob操作。下面的代码展示了如何使用JDBC操作LOB:
下面以MySQL数据库为例,创建一个张有三个字段的用户表,包括编号(id)、姓名(name)和照片(photo),建表语句如下:
create table tb_user(id int primary key auto_increment,name varchar(20) unique not null,photo longblob);下面的Java代码向数据库中插入一条记录:
import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException; class JdbcLobTest { public static void main(String[] args) { Connection con = null; try { // 1. 加载驱动(Java6以上版本可以省略) Class.forName("com.mysql.jdbc.Driver"); // 2. 建立连接 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456"); // 3. 创建语句对象 PreparedStatement ps = con.prepareStatement("insert into tb_user values (default, ?, ?)"); ps.setString(1, "Avatar"); // 将SQL语句中第一个占位符换成字符串 try (InputStream in = new FileInputStream("test.jpg")) { // Java 7的TWR ps.setBinaryStream(2, in); // 将SQL语句中第二个占位符换成二进制流 // 4. 发出SQL语句获得受影响行数 System.out.println(ps.executeUpdate() == 1 ? "插入成功" : "插入失败"); } catch(IOException e) { System.out.println("读取照片失败!"); } } catch (ClassNotFoundException | SQLException e) { // Java 7的多异常捕获 e.printStackTrace(); } finally { // 释放外部资源的代码都应当放在finally中保证其能够得到执行 try { if(con != null && !con.isClosed()) { con.close(); // 5. 释放数据库连接 con = null; // 指示垃圾回收器可以回收该对象 } } catch (SQLException e) { e.printStackTrace(); } } }}
阅读全文
0 0
- java
- JAVA
- JAVA
- JAVA
- java
- Java
- Java
- JAVA:
- java
- java
- java
- java
- Java
- java
- java
- java
- JAVA?
- java
- java利用poi和jfinal框架将excel导入数据库
- 重磅!Android Studio 3.0 正式发布,支持 Kotlin 语言
- FPGA设计中的复位问题
- CString,string,char*之间的转换(转)
- java使用类之前的准备工作
- Java
- bzoj4034: [HAOI2015]树上操作(树链剖分+线段树)
- 通过apk拿下服务器
- idea2017插件目录变更
- 深入理解java虚拟机-第五章:虚拟机字节码执行引擎
- 基于Tensorflow, OpenCV. 使用MNIST数据集训练卷积神经网络模型,用于手写数字识别
- http状态码
- spring 的元注解 和组合注解
- FAQ05872]如何用DDMS分析native memory leak