Java Doc for OracleLobHandler.java in  » J2EE » spring-framework-2.0.6 » org » springframework » jdbc » support » lob » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » J2EE » spring framework 2.0.6 » org.springframework.jdbc.support.lob 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.springframework.jdbc.support.lob.AbstractLobHandler
      org.springframework.jdbc.support.lob.OracleLobHandler

OracleLobHandler
public class OracleLobHandler extends AbstractLobHandler (Code)
LobHandler implementation for Oracle databases. Uses proprietary API to create oracle.sql.BLOB and oracle.sql.CLOB instances, as necessary when working with Oracle's JDBC driver. Note that this LobHandler requires Oracle JDBC driver 9i or higher!

While most databases are able to work with DefaultLobHandler, Oracle just accepts Blob/Clob instances created via its own proprietary BLOB/CLOB API, and additionally doesn't accept large streams for PreparedStatement's corresponding setter methods. Therefore, you need to use a strategy like this LobHandler implementation.

Needs to work on a native JDBC Connection, to be able to cast it to oracle.jdbc.OracleConnection. If you pass in Connections from a connection pool (the usual case in a J2EE environment), you need to set an appropriate NativeJdbcExtractor to allow for automatical retrieval of the underlying native JDBC Connection. LobHandler and NativeJdbcExtractor are separate concerns, therefore they are represented by separate strategy interfaces.

Coded via reflection to avoid dependencies on Oracle classes. Even reads in Oracle constants via reflection because of different Oracle drivers (classes12, ojdbc14) having different constant values! As this LobHandler initializes Oracle classes on instantiation, do not define this as eager-initializing singleton if you do not want to depend on the Oracle JAR being in the class path: use "lazy-init=true" to avoid this issue.
author:
   Juergen Hoeller
since:
   04.12.2003
See Also:   OracleLobHandler.setNativeJdbcExtractor
See Also:   oracle.sql.BLOB
See Also:   oracle.sql.CLOB


Inner Class :protected class OracleLobCreator implements LobCreator
Inner Class :protected static interface LobCallback

Field Summary
final protected  Loglogger
    


Method Summary
public  InputStreamgetBlobAsBinaryStream(ResultSet rs, int columnIndex)
    
public  byte[]getBlobAsBytes(ResultSet rs, int columnIndex)
    
public  InputStreamgetClobAsAsciiStream(ResultSet rs, int columnIndex)
    
public  ReadergetClobAsCharacterStream(ResultSet rs, int columnIndex)
    
public  StringgetClobAsString(ResultSet rs, int columnIndex)
    
public  LobCreatorgetLobCreator()
    
protected synchronized  voidinitOracleDriverClasses(Connection con)
     Retrieve the oracle.sql.BLOB and oracle.sql.CLOB classes via reflection, and initialize the values for the DURATION_SESSION and MODE_READWRITE constants defined there.
public  voidsetCache(boolean cache)
     Set whether to cache the temporary LOB in the buffer cache. This value will be passed into BLOB/CLOB.createTemporary.
public  voidsetNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
     Set an appropriate NativeJdbcExtractor to be able to retrieve the underlying native oracle.jdbc.OracleConnection.

Field Detail
logger
final protected Log logger(Code)





Method Detail
getBlobAsBinaryStream
public InputStream getBlobAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException(Code)



getBlobAsBytes
public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException(Code)



getClobAsAsciiStream
public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQLException(Code)



getClobAsCharacterStream
public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException(Code)



getClobAsString
public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException(Code)



getLobCreator
public LobCreator getLobCreator()(Code)



initOracleDriverClasses
protected synchronized void initOracleDriverClasses(Connection con)(Code)
Retrieve the oracle.sql.BLOB and oracle.sql.CLOB classes via reflection, and initialize the values for the DURATION_SESSION and MODE_READWRITE constants defined there.
Parameters:
  con - the Oracle Connection, for using the exact same class loaderthat the Oracle driver was loaded with
See Also:   oracle.sql.BLOB.DURATION_SESSION
See Also:   oracle.sql.BLOB.MODE_READWRITE
See Also:   oracle.sql.CLOB.DURATION_SESSION
See Also:   oracle.sql.CLOB.MODE_READWRITE



setCache
public void setCache(boolean cache)(Code)
Set whether to cache the temporary LOB in the buffer cache. This value will be passed into BLOB/CLOB.createTemporary. Default is "true".
See Also:   oracle.sql.BLOB.createTemporary
See Also:   oracle.sql.CLOB.createTemporary



setNativeJdbcExtractor
public void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)(Code)
Set an appropriate NativeJdbcExtractor to be able to retrieve the underlying native oracle.jdbc.OracleConnection. This is necessary for DataSource-based connection pools, as those need to return wrapped JDBC Connection handles that cannot be cast to a native Connection implementation.

Effectively, this LobHandler just invokes a single NativeJdbcExtractor method, namely getNativeConnectionFromStatement with a PreparedStatement argument (falling back to a PreparedStatement.getConnection() call if no extractor is set).

A common choice is SimpleNativeJdbcExtractor, whose Connection unwrapping (which is what OracleLobHandler needs) will work with many connection pools. See SimpleNativeJdbcExtractor's javadoc for details.
See Also:   org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor.getNativeConnectionFromStatement
See Also:   org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor
See Also:   oracle.jdbc.OracleConnection




Methods inherited from org.springframework.jdbc.support.lob.AbstractLobHandler
public InputStream getBlobAsBinaryStream(ResultSet rs, String columnName) throws SQLException(Code)(Java Doc)
public byte[] getBlobAsBytes(ResultSet rs, String columnName) throws SQLException(Code)(Java Doc)
public InputStream getClobAsAsciiStream(ResultSet rs, String columnName) throws SQLException(Code)(Java Doc)
public Reader getClobAsCharacterStream(ResultSet rs, String columnName) throws SQLException(Code)(Java Doc)
public String getClobAsString(ResultSet rs, String columnName) throws SQLException(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.