http://yongzhao.javaeye.com/category/36256?list=1&category=5837
JdbcTemplate中傳入了AbstractLobCreatingPreparedStatementCallback的實作,並傳入一 個 LobHandler,對於MySQL(MS SQL Server或Oracle 10g),這邊使用DefaultLobHandler即可,對於Oracle 9i特定的LOB處理,我們可以使用OracleLobHandler。
在使用Spring搭配Hibernate時,可以簡化對Lob型態的處理,只要在SessionFactory建構時指定LobHandler,例如:
* beans-config.xml
- <beans>
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName">
- <value>com.mysql.jdbc.Driver</value>
- </property>
- <property name="url">
- <value>jdbc:mysql://localhost:3306/demo</value>
- </property>
- <property name="username">
- <value>root</value>
- </property>
- <property name="password">
- <value>123456</value>
- </property>
- </bean>
- <bean id="lobHandler"
- class="org.springframework.jdbc.support.lob.DefaultLobHandler" />
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
- destroy-method="close">
- <property name="dataSource">
- <ref bean="dataSource" />
- </property>
- <property name="lobHandler">
- <ref bean="lobHandler" />
- </property>
- <property name="mappingResources">
- <list>
- <value>onlyfun/caterpillar/User.hbm.xml</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">
- org.hibernate.dialect.MySQLDialect
- </prop>
- </props>
- </property>
- </bean>
- <bean id="hibernateTemplate"
- class="org.springframework.orm.hibernate3.HibernateTemplate">
- <property name="sessionFactory">
- <ref bean="sessionFactory" />
- </property>
- </bean>
- </beans>
在這邊指定LobHandler時,對於MySQL、DB2、MS SQL Server、Oracle 10g,使用DefaultLobHandler即可,而對於Oracle 9i,則可以使用OracleLobHandler。
似乎没那么麻烦吧,偶记得偶当时用的时候直接用String就可以了。支持大字节,但是oracle就不可以了,必须用oracle.sql.CLOB来搞定。
db2的clob还是很好搞定的,你可以直接试试String。Mysql的text和db2的clob操作差不多。