willpower88
对JAVA有点理解了……
BlogJava
首页
新随笔
联系
聚合
管理
随笔-204 评论-90 文章-8 trackbacks-0
用Hibernate操作Oracle Clob字段
1.在HBM里对应CLOB型的字段为:java.sql.Clob,用MyEclipse DataExplorer生成后手动改一下即可,当然POJO也一样啊,如:
HBM:
<
hibernate-mapping
>
<
class
name
="com.chinacars.filterdata.beans.TblWapNews2"
table
="TBL_WAP_NEWS2"
>
<
id
name
="id"
type
="java.lang.Long"
>
<
column
name
="ID"
precision
="22"
scale
="0"
/>
</
id
>
<
property
name
="content"
type
="java.sql.Clob"
>
<
column
name
="CONTENT"
/>
</
property
>
</
class
>
</
hibernate-mapping
>
POJO:
import
java.sql.Clob;
public
class
test
{
private
Clob content;
}
2.首先要给Clob里写一个值,如:注意看一下有底色的地方就明白了吧
package
com.chinacars.filterdata.modidata;
import
java.lang.reflect.InvocationTargetException;
import
java.sql.Clob;
import
java.sql.SQLException;
import
java.util.List;
import
org.apache.commons.beanutils.PropertyUtils;
import
org.apache.commons.logging.Log;
import
org.apache.commons.logging.LogFactory;
import
org.hibernate.Hibernate;
import
com.chinacars.filterdata.beans.TblWapNews1;
import
com.chinacars.filterdata.beans.TblWapNews2;
import
com.chinacars.filterdata.dao.WapNews1DAO;
import
com.chinacars.filterdata.dao.WapNews2DAO;
import
com.chinacars.filterdata.util.StringProcess;
public
class
ModiData2
{
private
static
final
Log logger
=
LogFactory.getLog(ModiData2.
class
);
public
static
void
main(String[] args)
{
WapNews1DAO wapNews1DAO
=
new
WapNews1DAO();
WapNews2DAO wapNews2DAO
=
new
WapNews2DAO();
TblWapNews1 news1
=
new
TblWapNews1();
TblWapNews2 news2
=
new
TblWapNews2();
List list
=
wapNews1DAO.getWapNews();
Clob contentClob
=
null
;
String cStr
=
"
1
"
;
String title;
for
(
int
i
=
0
; i
<
list.size(); i
++
)
{
logger.info(
"
============The number :
"
+
i);
news1
=
(TblWapNews1) list.get(i);
contentClob
=
news1.getContent();
try
{
PropertyUtils.copyProperties(news2, news1);
}
catch
(IllegalAccessException e)
{
logger.error(e);
e.printStackTrace();
}
catch
(InvocationTargetException e)
{
logger.error(e);
e.printStackTrace();
}
catch
(NoSuchMethodException e)
{
logger.error(e);
e.printStackTrace();
}
title
=
news1.getTitle();
if
(title
!=
null
)
{
title
=
title.replaceAll(
"
?
"
,
""
);
news2.setTitle(title);
}
news2.setContent(Hibernate.createClob(cStr));
try
{
wapNews2DAO.saveWapNews(news2, StringProcess
.delInvalidChar(contentClob.getSubString(
1
,
(
int
) contentClob.length())));
}
catch
(SQLException e)
{
logger.error(e);
e.printStackTrace();
}
}
}
}
3.开始写入这内容,最主要的是这里,我在这里卡了好久……
主是下面红色的部分,其它的有色部分都能搜到:看下面的代码吧:^_^
package
com.chinacars.filterdata.dao;
import
java.io.Writer;
import
java.sql.Clob;
import
oracle.sql.CLOB;
import
org.apache.commons.logging.Log;
import
org.apache.commons.logging.LogFactory;
import
org.hibernate.LockMode;
import
org.hibernate.Session;
import
org.hibernate.Transaction;
import
org.hibernate.lob.SerializableClob;
import
com.chinacars.filterdata.beans.TblWapNews2;
public
class
WapNews2DAO
{
private
static
final
Log logger
=
LogFactory.getLog(WapNews2DAO.
class
);
private
Session oraSession;
private
Transaction tx;
public
boolean
saveWapNews(TblWapNews2 news, String content)
{
try
{
oraSession
=
SessionFactory.currentORASession();
tx
=
oraSession.beginTransaction();
oraSession.save(news);
oraSession.flush();
oraSession.refresh(news, LockMode.UPGRADE);
SerializableClob clob
=
(SerializableClob) news.getContent();
Clob jClob
=
clob.getWrappedClob();
CLOB oClob
=
(CLOB)jClob;
Writer wt
=
oClob.getCharacterOutputStream();
//
byte[] bData = content.getBytes();
wt.write(content);
wt.close();
oraSession.flush();
tx.commit();
logger.info(
"
=================== INSERT OK
"
);
}
catch
(Exception e)
{
if
(tx
!=
null
)
tx.rollback();
logger.info(
"
=================== NOT INSERT
"
);
logger.info(e);
e.printStackTrace();
}
finally
{
oraSession.close();
}
return
true
;
}
}
哈哈,就写到这里了,快没车了……
有不懂的朋友,发e-mail吧!
erdosqiao@163.com
posted on 2006-05-11 18:40
一凡
阅读(2148)
评论(0)
编辑
收藏
所属分类:
JAVA FRAMEWORK
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
Springboot整合activiti
springboot+mybatis整合之坑
在hibernate中配置proxool连接池
Spring配制文件
ajax dwr2.0 学习中遇到的问题
每日访问数据库失败问题
Birt GDI ERROR
hibernate 3.0.x HQL 中文乱码问题
log4j用法1
hibernate3 hql 参数乱码问题
<
2006年5月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(9)
给我留言
查看公开留言
查看私人留言
随笔分类
AI(2)
Android开发
Architecture(1)
DATABASE(44)
Golang(3)
JAVA FRAMEWORK(12)
JAVA IDE(10)
JAVA 基础(29)
JS$AJAX(6)
linux(47)
Linux C(5)
Network Program(2)
OpenSource(3)
script(2)
Web Server(6)
XML(1)
心情x记(5)
搜索(1)
数据结构&算法(3)
杂文(5)
随笔档案
2024年2月 (1)
2023年11月 (1)
2021年8月 (1)
2021年6月 (1)
2021年1月 (1)
2020年9月 (1)
2020年4月 (1)
2020年2月 (1)
2019年12月 (2)
2019年11月 (1)
2019年9月 (1)
2019年4月 (1)
2017年5月 (1)
2017年3月 (1)
2017年2月 (1)
2016年10月 (1)
2015年1月 (1)
2014年11月 (1)
2014年9月 (1)
2014年8月 (1)
2014年7月 (2)
2014年6月 (1)
2014年2月 (2)
2013年12月 (3)
2013年11月 (2)
2013年10月 (2)
2013年6月 (1)
2013年5月 (3)
2013年3月 (2)
2013年2月 (1)
2013年1月 (1)
2012年11月 (1)
2012年10月 (1)
2012年8月 (2)
2012年7月 (3)
2012年4月 (2)
2011年12月 (2)
2011年10月 (1)
2011年9月 (2)
2011年8月 (1)
2011年6月 (1)
2011年3月 (1)
2011年2月 (1)
2010年11月 (1)
2010年10月 (2)
2010年9月 (1)
2010年8月 (5)
2010年7月 (1)
2010年6月 (2)
2010年5月 (7)
2010年4月 (1)
2010年3月 (2)
2010年1月 (2)
2009年10月 (1)
2009年9月 (2)
2009年8月 (3)
2009年7月 (2)
2009年6月 (2)
2009年4月 (1)
2009年3月 (1)
2009年2月 (3)
2008年12月 (2)
2008年11月 (3)
2008年10月 (3)
2008年9月 (1)
2008年8月 (3)
2008年7月 (2)
2008年6月 (4)
2008年5月 (2)
2008年4月 (7)
2008年3月 (3)
2008年2月 (6)
2008年1月 (3)
2007年12月 (3)
2007年11月 (5)
2007年10月 (4)
2007年9月 (1)
2007年8月 (1)
2007年7月 (3)
2007年6月 (2)
2007年5月 (2)
2007年4月 (7)
2007年3月 (5)
2007年2月 (2)
2007年1月 (5)
2006年12月 (7)
2006年11月 (6)
2006年10月 (1)
2006年9月 (2)
2006年8月 (2)
2006年7月 (4)
2006年5月 (1)
2006年4月 (1)
2006年3月 (1)
2006年2月 (2)
文章分类
JAVA FRAMEWORK(1)
Linux(7)
文章档案
2006年9月 (2)
2006年7月 (1)
2006年6月 (1)
2006年3月 (1)
2006年2月 (3)
相册
myphoto
学习资源
HSQL、mysql学习笔记
http://labs.renren.com/apache-mirror/
reren apache mirror
jadclipse
java内存溢出
Liferay Portal学习资料
linux command
Lucene-2.0学习文档
my baby blog
oksonic
sean-Jakarta_Commons_Notes
张沈鹏
搜索引擎lucence
游戏开发
游戏开发
程序性能问题定位方法
苗伟的专栏
雪宇的BLOG
搜索
最新评论
1. re: 用DOM4J创建及修改XML文件
打
--的
2. vim打开多窗口、多文件之间的切换
还不错哟,看得懂吧!
--猴子
3. vim打开多窗口、多文件之间的切换
猴子增加
--猴子
4. re: 一些可以查询IP地理位置、身份证所在地、手机归属地的接口
评论内容较长,点击标题查看
--水年华
5. re: GlassFish安装和使用
方法非常
--在中国
阅读排行榜
1. vim打开多窗口、多文件之间的切换(33844)
2. PLS-00103: 出现符号 ","在需要下列之一时(21917)
3. JAVA日期加减运算(21177)
4. java发送HTTP GET POST请求(11145)
5. 用DOM4J创建及修改XML文件(10957)
评论排行榜
1. 每日访问数据库失败问题(10)
2. JAVA日期加减运算(7)
3. java FTP 操作(摘录)(7)
4. eclipse Jadclipse反编译插件安装(6)
5. 用Eclipse调用AIX的wsdl2java(5)