У меня есть строка из более чем 5000 символов, которую я хочу сохранить как XMLTYPE с MyBatis.Для этого я делаю следующее:
конвертируем строку в CLOB и используем ее для сохранения в базе данных с помощью конструктора: XMLTYPE.CREATEXML.
У меня проблема при конвертации строкив CLOB.
Если я сделаю это первым способом, созданный объект CLOB будет SerialClob и имеет 3 поля: BUF, LENG и CLOB;но из этих трех полей заполнены только два: BUF (буфер) и LENG, но CLOB имеет значение null.
Но если я сделаю это вторым способом, я создам полный объект 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);
}