java clob

作者:原创时间:2022-03-25
文档

java clob是什么,让我们一起了解一下?

CLOB是内置类型,将字符大对象存储为数据库表某一行中的一个列值。默认情况下,驱动程序使用SQL locator实现Clob对象,这意味着CLOB对象包含一个指向SQL CLOB数据的逻辑指针而不是数据本身。

在JAVA如何使用CLOB进行操作?

在绝大多数情况下,有2种方法使用CLOB。

1、相对比较小的,可以用String进行直接操作,把CLOB看成字符串类型即可。

2、如果比较大,可以用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream 即可。

(1)读取数据:

ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");
rs.next();
Reader reader = rs.getCharacterStream(2);

(2)插入数据:

PreparedStatement pstmt = con.prepareStatement("INSERT INTO test1 (c1_id, c2_vcmax) VALUES (?, ?)");
pstmt.setInt(1, 1);
pstmt.setString(2, htmlStr);
pstmt.executeUpdate();

(3)更新数据:

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM test1");
rs.next();
Clob clob = rs.getClob(2);
long pos = clob.position("dog", 1);
clob.setString(1, "cat", len, 3);
rs.updateClob(2, clob);
rs.updateRow();

那么java是如何操作数据库clob字段的?

示例代码如下:

package com.test.db.clob;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Writer;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ClobTest {undefined
private static Connection conn;
static {undefined
try {undefined
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
} catch (ClassNotFoundException e) {undefined
e.printStackTrace();
} catch (SQLException e) {undefined
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException, IOException {undefined
testInsert();
testUpdate();
testRead();
}
private static void testInsert() throws SQLException {undefined
String sql = "insert into test_clob values(1, empty_clob())";
Statement stm = conn.createStatement();
stm.execute(sql);
}
private static void testUpdate() throws SQLException, IOException {undefined
String sql = "select content from test_clob where id = 1 for update";
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(sql);
while (rs.next()) {undefined
Clob c = rs.getClob(1);
c.truncate(0);// clear
Writer w = c.setCharacterStream(1);//The first position is 1
w.write("abc");
w.close();
c.setString(c.length() + 1, "abc");
conn.commit();
}
}
private static void testRead() throws SQLException, IOException {undefined
String sql = "select content from test_clob where id = 1";
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
while (rs.next()) {undefined
Clob clob = rs.getClob("content");
System.out.println("clob.getSubString(1, 2) --> " + clob.getSubString(1, 2));
System.out.println("clob.getSubString(1, (int)clob.length()) --> " +
clob.getSubString(1, (int)clob.length()));
BufferedReader r = new BufferedReader(clob.getCharacterStream());
String s;
while ((s = r.readLine()) != null) {undefined
System.out.println(s);
}
r.close();
}
}
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java clone() java collect java collections java color java combobox java comet 山楂干泡水最佳搭配 java commandline java comparable接口 java compiler java config java console java console.log 复活节的由来 java const java consumer接口 统一和康师傅是哪国的 怎么删掉word中的空白页 微信笔记在哪里编辑 椰子怎么挑 java classloader java class.forname java class java cipher java charset java charsequence java charat java channel iPad怎么重启 java cglib 平板如何录屏 java ceiling java callback java calendar获取当前时间 苹果13怎么开机 java calculate java byte取值范围 java bytebuffer java bundle java build.gradle