gpt4 book ai didi

java - Clob 对象数据为空

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:29 27 4
gpt4 key购买 nike

我有一个超过 5000 个字符的字符串,我想用 MyBatis 将其保存为 XMLTYPE。为此,我执行以下操作:

将字符串转换为 CLOB,CLOB 使用它通过构造函数将其保存在数据库中:XMLTYPE.CREATEXML。

将字符串转换为 CLOB 时遇到问题。

如果我用第一种方法,创建的 CLOB 对象是 SerialClob,有 3 个字段:BUF、LENG 和 CLOB;但这三个字段中只有两个被填充:BUF(缓冲区)和LENG,但CLOB为空。

但是如果我以第二种方式执行此操作,我将创建包含所有字符串的完整 CLOB 对象,并且将其保存在数据库中不会出现问题。但我创建 SerialClob 的第一种方法不允许将其保存在 XMLTYPE 中。

我无法将 XMLTYPE 构造函数与 VARCHARS 一起使用,因为我的字符串超过 4000 个字符。

是否有无需打开连接的替代方案?

 Clob myClobFile;
String str = "<myString example></end of example>";

第一种方式:

try
{
myClobFile= new javax.sql.rowset.serial.SerialClob (str.toCharArray ());
}

第二种方式:

try
{
myClobFile= sqlSession.getConnection ().createClob ();
myClobFile.setString (1, str);
}

最佳答案

我资助一个解决方案:

    public static Clob stringToClob (SqlSession sqlSession, String str) throws SQLException 
{
Clob myRet = null;

try
{
myRet = sqlSession.getConnection ().createClob ();
myRet.setString (1, str);
}
catch (SQLException e)
{
...trows
}
return myRet;
}
<小时/>

我使用该解决方案是因为在调试代码时,在数组应该所在的部分(在 clob 中),它是一个空数组。尝试将位数组格式化为 clob,然后将此对象传递给 mybatis 时,一定有问题。

关于java - Clob 对象数据为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53929583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com