java clob 操作_java 操作blob、clob大字段代码示例

这篇博客展示了如何使用Java进行Blob和Clob的大字段数据操作,包括插入、查询和读取。示例代码详细解释了如何处理二进制(Blob)和字符(Clob)大对象,涉及数据库连接、PreparedStatement的使用以及文件流的读写。
摘要由CSDN通过智能技术生成

BlobDemo01.java

============================================================

import java.sql.Connection ;

import java.sql.DriverManager ;

import java.sql.SQLException ;

import java.sql.PreparedStatement

;

import java.io.File ;

import java.io.FileInputStream ;

import java.io.InputStream ;

public class BlobDemo01{

// 定义MySQL的数据库驱动程序

public static final String DBDRIVER

= "org.gjt.mm.mysql.Driver" ;

// 定义MySQL数据库的连接地址

public static final String DBURL =

"jdbc:mysql://localhost:3306/mldn" ;

// MySQL数据库的连接用户名

public static final String DBUSER =

"root" ;

// MySQL数据库的连接密码

public static final String DBPASS =

"mysqladmin" ;

public static void main(String

args[]) throws Exception{// 所有异常抛出

Connection conn = null ;// 数据库连接

PreparedStatement pstmt = null ;

String name = "李兴华" ;

String sql = "INSERT INTO

userblob(name,photo) VALUES (?,?) " ;

Class.forName(DBDRIVER) ;//

加载驱动程序

conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

pstmt = conn.prepareStatement(sql)

;

File f = new File("d:" +

File.separator + "mldn.gif") ;// 图片文件

InputStream input = null ;

input = new FileInputStream(f) ;

pstmt.setString(1,name) ;//

设置第一个“?”的内容

pstmt.setBinaryStream(2,input,(int)f.length()) ;// 设置输入流

pstmt.executeUpdate() ;// 更新数据库

pstmt.close() ;

conn.close() ;// 数据库关闭

}

};

BlobDemo02.java

============================================================

import java.sql.Connection ;

import java.sql.DriverManager ;

import java.sql.SQLException ;

import java.sql.PreparedStatement

;

import java.io.File ;

import java.io.FileOutputStream

;

import java.sql.ResultSet ;

import java.io.InputStream ;

import java.io.InputStream ;

import java.io.OutputStream ;

public class BlobDemo02{

// 定义MySQL的数据库驱动程序

public static final String DBDRIVER

= "org.gjt.mm.mysql.Driver" ;

// 定义MySQL数据库的连接地址

public static final String DBURL =

"jdbc:mysql://localhost:3306/mldn" ;

// MySQL数据库的连接用户名

public static final String DBUSER =

"root" ;

// MySQL数据库的连接密码

public static final String DBPASS =

"mysqladmin" ;

public static void main(String

args[]) throws Exception{// 所有异常抛出

Connection conn = null ;// 数据库连接

PreparedStatement pstmt = null ;

ResultSet rs = null ;

int id = 1 ;

String sql = "SELECT name,photo FROM

userblob WHERE id=?" ;

Class.forName(DBDRIVER) ;//

加载驱动程序

conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

pstmt = conn.prepareStatement(sql)

;

pstmt.setInt(1,id) ;

rs = pstmt.executeQuery() ;//

执行查询

if(rs.next()){

String name = rs.getString(1) ;

System.out.println("姓名:" + name)

;

InputStream input =

rs.getBinaryStream(2) ;

File f = new File("d:" +

File.separator + "loadmldn.gif") ;// 图片文件

OutputStream out = null ;

out = new FileOutputStream(f) ;

int temp = 0 ;

while((temp=input.read())!=-1){//

边读边写

out.write(temp) ;

}

input.close() ;

out.close() ;

}

pstmt.close() ;

conn.close() ;// 数据库关闭

}

};

BlobDemo03.java

============================================================

import java.sql.Connection ;

import java.sql.DriverManager ;

import java.sql.SQLException ;

import java.sql.PreparedStatement

;

import java.sql.Blob ;

import java.sql.ResultSet ;

import java.io.File ;

import java.io.FileOutputStream

;

import java.io.InputStream ;

import java.io.InputStream ;

import java.io.OutputStream ;

public class BlobDemo03{

// 定义MySQL的数据库驱动程序

public static final String DBDRIVER

= "oracle.jdbc.driver.OracleDriver" ;

// 定义MySQL数据库的连接地址

public static final String DBURL =

"jdbc:oracle:thin:@10.7.46.206:1521:slyth" ;

// MySQL数据库的连接用户名

public static final String DBUSER =

"scott" ;

// MySQL数据库的连接密码

public static final String DBPASS =

"tiger" ;

public static void main(String

args[]) throws Exception{// 所有异常抛出

Connection conn = null ;// 数据库连接

PreparedStatement pstmt = null ;

ResultSet rs = null ;

String id = "WBHD100006030000003"

;

String sql = "select brfl from

pju.tb0005_snimdt_044 t where t.snpccd=?" ;

Class.forName(DBDRIVER) ;//

加载驱动程序

conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

pstmt = conn.prepareStatement(sql)

;

pstmt.setString(1,id) ;

rs = pstmt.executeQuery() ;//

执行查询

if(rs.next()){

//String name = rs.getString(1)

;

//System.out.println("姓名:" + name)

;

Blob b = rs.getBlob(1) ;

File f = new File("d:" +

File.separator + "loadmldn.gif") ;// 图片文件

OutputStream out = null ;

out = new FileOutputStream(f) ;

out.write(b.getBytes(1,(int)b.length())) ;

out.close() ;

}

pstmt.close() ;

conn.close() ;// 数据库关闭

}

};

ClobDemo01.java

============================================================

import java.sql.Connection ;

import java.sql.DriverManager ;

import java.sql.SQLException ;

import java.sql.PreparedStatement

;

import java.io.File ;

import java.io.FileInputStream ;

import java.io.InputStream ;

public class ClobDemo01{

// 定义MySQL的数据库驱动程序

public static final String DBDRIVER

= "org.gjt.mm.mysql.Driver" ;

// 定义MySQL数据库的连接地址

public static final String DBURL =

"jdbc:mysql://localhost:3306/mldn" ;

// MySQL数据库的连接用户名

public static final String DBUSER =

"root" ;

// MySQL数据库的连接密码

public static final String DBPASS =

"mysqladmin" ;

public static void main(String

args[]) throws Exception{// 所有异常抛出

Connection conn = null ;// 数据库连接

PreparedStatement pstmt = null ;

String name = "李兴华" ;// 表示姓名

String sql = "INSERT INTO

userclob(name,note) VALUES (?,?) " ;

Class.forName(DBDRIVER) ;//

加载驱动程序

conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

pstmt = conn.prepareStatement(sql)

;// 创建PreapredStatement对象

File f = new File("d:" +

File.separator + "mldn.txt") ;

InputStream input = null ;

input = new FileInputStream(f) ;//

通过输入流读取文件

pstmt.setString(1,name) ;

pstmt.setAsciiStream(2,input,(int)f.length()) ;

pstmt.executeUpdate() ;

conn.close() ;// 数据库关闭

}

};

ClobDemo02.java

============================================================

import java.sql.Connection ;

import java.sql.DriverManager ;

import java.sql.SQLException ;

import java.sql.PreparedStatement

;

import java.sql.ResultSet ;

import java.io.File ;

import java.io.FileInputStream ;

import java.io.InputStream ;

import java.util.Scanner ;

public class ClobDemo02{

// 定义MySQL的数据库驱动程序

public static final String DBDRIVER

= "org.gjt.mm.mysql.Driver" ;

// 定义MySQL数据库的连接地址

public static final String DBURL =

"jdbc:mysql://localhost:3306/mldn" ;

// MySQL数据库的连接用户名

public static final String DBUSER =

"root" ;

// MySQL数据库的连接密码

public static final String DBPASS =

"mysqladmin" ;

public static void main(String

args[]) throws Exception{// 所有异常抛出

Connection conn = null ;// 数据库连接

PreparedStatement pstmt = null ;

ResultSet rs = null ;

int id = 1 ;// 读取的编号

String sql = "SELECT name,note FROM

userclob WHERE id=? " ;

Class.forName(DBDRIVER) ;//

加载驱动程序

conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

pstmt = conn.prepareStatement(sql)

;// 创建PreapredStatement对象

pstmt.setInt(1,id) ;

rs = pstmt.executeQuery() ;

if(rs.next()){

String name = rs.getString(1) ;

StringBuffer note = new

StringBuffer() ;

System.out.println("姓名:" + name)

;

InputStream input =

rs.getAsciiStream(2) ;

Scanner scan = new Scanner(input)

;// 使用Scanner类读取内容

scan.useDelimiter("\r\n") ;//

将文件换行作为分割符

while(scan.hasNext()){

note.append(scan.next()).append("\n") ;

}

System.out.println("内容:" + note)

;

input.close() ;

}

rs.close() ;

pstmt.close() ;

conn.close() ;// 数据库关闭

}

};

ClobDemo03.java

============================================================

import java.sql.Connection ;

import java.sql.DriverManager ;

import java.sql.SQLException ;

import java.sql.PreparedStatement

;

import java.sql.Clob ;

import java.sql.ResultSet ;

public class ClobDemo03{

// 定义MySQL的数据库驱动程序

public static final String DBDRIVER

= "org.gjt.mm.mysql.Driver" ;

// 定义MySQL数据库的连接地址

public static final String DBURL =

"jdbc:mysql://localhost:3306/mldn" ;

// MySQL数据库的连接用户名

public static final String DBUSER =

"root" ;

// MySQL数据库的连接密码

public static final String DBPASS =

"mysqladmin" ;

public static void main(String

args[]) throws Exception{// 所有异常抛出

Connection conn = null ;// 数据库连接

PreparedStatement pstmt = null ;

ResultSet rs = null ;

int id = 1 ;// 读取的编号

String sql = "SELECT name,note FROM

userclob WHERE id=? " ;

Class.forName(DBDRIVER) ;//

加载驱动程序

conn =

DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

pstmt = conn.prepareStatement(sql)

;// 创建PreapredStatement对象

pstmt.setInt(1,id) ;

rs = pstmt.executeQuery() ;

if(rs.next()){

String name = rs.getString(1) ;

System.out.println("姓名:" + name)

;

Clob c = rs.getClob(2) ;

String note =

c.getSubString(1,(int)c.length()) ;

System.out.println("内容:" + note )

;

c.truncate(100) ;// 只能读100个内容

System.out.println("部分读取内容:" +

c.getSubString(1,(int)c.length())) ;

}

rs.close() ;

pstmt.close() ;

conn.close() ;// 数据库关闭

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值