最近一個新項目中,嘗試在 Oracle 數據庫中使用 NCLOB 來保存大的 xml 字符串。
在代碼自動生成工具(通過 JDBC 驅動程序,讀數據庫表結構,自動生成對應的 java 代碼,包含增加、刪除、修改、分頁查詢、根據主鍵查找等前臺 html/js、后臺代碼 java),將 NCLOB 字段映射到 String 類型。
運行代碼,無報錯。使用 SQuirreL SQL 客戶端查看數據,覺察數據未保存成功。
網上搜一通,有提到用 SetBigStringTryClob 的數據庫連接額外屬性的。總覺得好傻。也有提到用 setStringForClob 方法的,也比較笨。
最后在 Oracle 官網上,找到一個更好的辦法:
升級 Oracle JDBC 驅動程序,直接用 java JDBC 標準的 setString 函數,保存成功!
對應網址:
http://docs.oracle.com/cd/E11882_01/java.112/e16548/oralob.htm#JJDBC28534
里面提到:
In Oracle Database 11g release 2 (11.2), the setBytes
, setBinaryStream
, setString
, setCharacterStream
, and setAsciiStream
methods of PreparedStatement
are extended to enhance the ability to work with BLOB
, CLOB
, and NCLOB
target columns.
...
The SetBigStringTryClob
connection property of Oracle Database 10g Release 1 (10.1) is no longer used or needed.
...
----------------------------
轉發請注明出處。當心我晚上變大灰狼來摸你肚子喲。我是 jacklondon , at , cnblogs.com.
文章列表