javaclob,javaclob轉string

本文目錄一覽:

java 怎麼保存Clob對象

數據庫查詢出來

CLOB clob = (oracle.sql.CLOB)rs.getClob(i);

String sBlob = ClobToString(clob);

row.put(strFieldName, sBlob);

//—————

/**

*

* 功能:(將clob類型的數據轉換為string)

*

* @Title: ClobToString

* @Date: 0521, 2012 17:10:52 PM

* @param clob

* @return string

*/

public String ClobToString(CLOB clob) throws SQLException, IOException {

String reString = “”;

Reader is = clob.getCharacterStream();// 得到流

BufferedReader br = new BufferedReader(is);

String s = br.readLine();

StringBuffer sb = new StringBuffer();

while (s != null) {// 執行循環將字符串全部取出付值給StringBuffer由StringBuffer轉成STRING

sb.append(s);

s = br.readLine();

}

reString = sb.toString();

return reString;

}

java在oracle數據庫中怎麼插入讀取CLOB值

參考:

/**

* 寫入、更新CLOB字段的代碼示例

*/

public void writeClob() {

//自定義的數據庫連接管理類 

Connection conn = DbManager.getInstance().getConnection();

try {

conn.setAutoCommit(false);

// 1.這種方法寫入CLOB字段可以。

PreparedStatement stat = conn

.prepareStatement(“insert into t_clob (id,clobfield) values(sys_guid(),?)”);

String clobContent = “This is a very very long string”;

StringReader reader = new StringReader(clobContent);

stat.setCharacterStream(1, reader, clobContent.length());

stat.executeUpdate();

// 2.使用類似的方法進行更新CLOB字段,則不能成功 

// stat.close();

// stat =null;

// stat =

// conn.prepareStatement(“update t_clob set clobfield=? where id=1”);

// stat.setCharacterStream(1, reader, clobContent.length());

// stat.executeUpdate();

// 3.需要使用for update方法來進行更新,

// 但是,特別需要注意,如果原來CLOB字段有值,需要使用empty_clob()將其清空。

// 如果原來是null,也不能更新,必須是empty_clob()返回的結果。

stat = conn

.prepareStatement(“select clobfield from t_clob where id=’1′ for update”);

ResultSet rs = stat.executeQuery();

if (rs.next()) {

oracle.sql.CLOB clob = (oracle.sql.CLOB) rs

.getClob(“clobfield”);

Writer outStream = clob.getCharacterOutputStream();

char[] c = clobContent.toCharArray();

outStream.write(c, 0, c.length);

outStream.flush();

outStream.close();

}

conn.commit();

} catch (SQLException | IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

DbManager.getInstance().closeConnection(conn);

}

java 存儲clob字段

不可以使用update Test 語法來更新。

PreparedStatement pstat=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

ResultSet rs1 = pstat.executeQuery();

rs1.moveToInsertRow();

rs1.updateBlob(1, in, file.length() );

rs1.updateInt(2, 1);

rs1.insertRow();

in.close();

rs1.close();

pstat.close();

新增的方法,其實,修改也相似。

java clob

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用什麼讀取和接收 clob字段 用的是 db2 急用,在線等

Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver”).newInstance();

String url = “jdbc:db2:sample”;

Connection connection = DriverManager.getConnection(url, user, password);

connection.setAutoCommit(false);

PreparedStatement preparedStatement=connection.prepareStatement(sql);

ResultSet rs=preparedStatement.executeQuery();

Clob clob=rs.getClob(colName);

if(clob!=null)

{

Reader reader=((Oracle.sql.CLOB)clob).getCharacterStream();

BufferedReader br=new BufferedReader(reader);

String value=””;

String line=””;

while((line=br.readLine())!=null)

{

value+=line+” “;

}

}

rs.close();

preparedStatement.close();

value就是Java讀取clob的值。

原創文章,作者:SNJU,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/144158.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SNJU的頭像SNJU
上一篇 2024-10-24 15:27
下一篇 2024-10-24 15:27

相關推薦

  • c# enum轉換成string

    本文將從以下幾個方面詳細闡述c#中enum類型轉換成string類型的方法及注意事項。 一、基本語法和示例 c#中的enum類型可以看作是一組有名字的常量值,通常用於定義一組相關的…

    編程 2025-04-29
  • JWT String Argument Cannot Be Null or Empty

    JWT(JSON Web Token)是一種用於進行身份驗證的標準。在使用JWT時,經常會遇到「JWT String Argument Cannot Be Null or Empt…

    編程 2025-04-27
  • Python中String包含的進階應用

    對於Python程序員而言,String類型的操作是日常工作中必不可少的一部分。String包含的操作很多,其中最基礎的操作就是判斷一個字符串是否包含另一個字符串。本篇文章將對Py…

    編程 2025-04-27
  • byte字符串轉string解析

    本文將會從以下幾個方面對byte字符串轉string做詳細的闡述: 概述 轉換方式 實際應用 代碼實現 一、概述 字符串是編程中最常用的一種數據類型。但是,在編程中,我們經常會碰到…

    編程 2025-04-25
  • 深入探討string類型的默認值

    一、string類型的默認值簡介 在C++和許多其他編程語言中,string是一種表示字符串的數據類型。它們可以存儲一個或多個字符,可以進行比較、連接和操作。string類型在聲明…

    編程 2025-04-25
  • 如何將char轉換為string

    一、char和string的區別 在開始講述如何將char轉換為string前,我們需要了解char和string的區別。char是C++語言的一種基礎數據類型,用於表示單個字符,…

    編程 2025-04-24
  • C語言string.h中函數的詳細介紹

    一、strcpy函數 strcpy函數是C語言中常用的字符串拷貝函數,其原型為: char *strcpy(char *dest, const char *src); 該函數的作用…

    編程 2025-04-23
  • Java String Reverse詳解

    一、什麼是Java String Reverse 在描述Java String Reverse之前,我們需要先了解什麼是字符串翻轉。在計算機科學中,字符串翻轉是指將字符串中的字符順…

    編程 2025-04-23
  • 深度了解string類型長度

    string類型是一種非常常用的數據類型,它在許多編程語言中都有廣泛的應用。它可以表示任意長度的文本,例如字符串、HTML代碼、JSON數據等等。在這篇文章中,我們將從多個方面深度…

    編程 2025-04-23
  • Java String.Join——集合轉字符串的利器

    一、基本介紹 Java String.Join是Java8中一個非常實用的靜態方法,它的作用是將一個集合或數組轉換成一個字符串。 通常我們需要將一組數據以特殊的分隔符連接在一起,例…

    編程 2025-04-18

發表回復

登錄後才能評論