velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <geirmagnusso...@yahoo.com>
Subject Re: An extention of ResourceLoader -OT
Date Tue, 13 Nov 2001 18:12:05 GMT
On 11/13/01 1:11 PM, "Nick Bauman" <nick@cortexity.com> wrote:

>> On 11/13/01 6:33 AM, "Vitaly Repetenko" <vit@mtu.ru> wrote:
>> 
>>> 
>>> 
>>> Vitaly Repetenko wrote:
>>> 
>>>> Good day!
>>>> 
>>>> I have a problem with developing an extention of ResourceLoader. I
>>>> use CLOB to store templates in the db.
>>>> Clob class has a method getAsciiStream which returns InputStream, but
>>>> this method does not work with Russian charset.
>>>> I can not use method getCharacterStream because it returns a Reader
>>>> stream and ResourceLoader does not work with Reader. I was trying to
>>>> use a temporary variable (String) and class StringBufferInputStream
>>>> but this class does not properly convert characters into bytes.
>>>> Any idea?
>>>> 
>>>> Thanks in advance,
>>>> Vitaly
>>>> 
>>>> --
>>>> To unsubscribe, e-mail:
>>>> <mailto:velocity-user-unsubscribe@jakarta.apache.org>
>>>> For additional commands, e-mail:
>>>> <mailto:velocity-user-help@jakarta.apache.org>
>>> 
>>> Good day!
>>> 
>>> I have found some solution.
>>> 
>>>    public synchronized InputStream getResourceStream( String name )
>>>        throws ResourceNotFoundException
>>>    {
>>>      ...
>>>                    if (rs.next())
>>>                    {
>>>                        Clob clob = rs.getClob(templateColumn);
>>>                        String s = clob.getSubString(1,
>>>                        (int)clob.length());
>>> 
>>>                        return new
>>> ByteArrayInputStream(s.getBytes(inputEncoding));
>>>                    }
>>>       ...
>>>    }
>>> 
>>> But I don't think that this is a good solution.
>>> Is it possible to have ResourceLoader which can work with a Byte
>>> stream and  a Character stream?
>>> 
>>> Thanks in advance,
>>> Vitaly
>> 
>> You should be able to do that.  The resource loader just needs to
>> delliver a stream of bytes.
>> 
>> You have to be a touch careful with things like this - I just
>> discovered the challenges that dealing with CLOBs in Oracle seems to
>> require non-standard JDBC code...
> 
> Large object support in JDBC for Oracle (8.1.7) is very very slow. In my
> tests, I found that it's like 10x slower than using a stored procedure and
> calling that from JDBC. Also, our data architect showed me tests that
> indicated that straight JDBC PreparedStatements (no stored proc) generated
> close to 100 I/O requests on the database per transaction!
> 


That's interesting.  I was more worried about the fact I had to downcast a
ResultSet to an OracleResultSet to get to the CLOB, and had to insert an
empty CLOB first, then select for update, etc, etc, etc.

Geir

-- 
Geir Magnusson Jr.                                     geirm@optonline.net
System and Software Consulting
"They that can give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety." - Benjamin Franklin



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


--
To unsubscribe, e-mail:   <mailto:velocity-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:velocity-user-help@jakarta.apache.org>


Mime
View raw message