string ==> clob
//处理 大字段 CLOB
eventEvents.setEventContent(Hibernate.createClob(" "));
eventRepository.addEvent(eventEvents);
/* 处理clob字段 */
SerializableClob sc =
(SerializableClob)eventEvents.getEventContent();//
Clob wrapclob = sc.getWrappedClob();// 这里的Clob是java.sql.Clob
CLOB clob = (CLOB) wrapclob;// 这里的CLOB是oracle.sql.CLOB
Writer writer = clob.getCharacterOutputStream();
writer.write(eventVO.getEventContent());//
kybasicInfo.getInfoContentToString()是String类型的,在action里就是
传这个进来,然后再通过文件流形式写成CLOB字段中
writer.close();
clob ==> string
//处理大字段
try {
Clob clob=event.getEventContent();
evo.setEventContent(IOUtils.toString(clob.getCharacterStream()));
String eventContent =
IOUtils.toString(clob.getCharacterStream());
ServletActionContext.getRequest().setAttribute("eventContent",eve
ntContent);
System.out.println("CLOB = "+clob.getCharacterStream());
public void modifyEvent(EventEvents event) throws DAOException {
this.update(event);
this.getMyHibernateTemplate().flush();
this.getMyHibernateTemplate().refresh(event);
}
JAVA操作CLOB类型的数据库字段还是有点麻烦,虽然CLOB不像BLOB那样是用二进制来存值,但不能当成普通的String来操作,当初操作ORACLE这种字段类型时,可把我折腾了半天,现将如何操作的步骤写
了个比较详细的例子和说明,以供大家参考.
这里只写最关键的几个地方,其它的地方平时该怎么写就怎么写
首先是POJO类:
import java.sql.Clob;
import java.util.Date;
/**
*
* @author coffee
*
*/
public class KybasicInfo implements java.io.Serializable {
private Long infoId;
private String infoTitle;
private String infoKeyword;
private Clob infoContent; //注意这个地方是java.sql.Clob类型的,生成默认是String类型的,需要手工改一下
private String infoContentToString; //这个是和infoContent做转换时,手工添加的一个,不和数据库里的字段进行对应的
private Long infoTop;
private String userSno;
private Date infoTime;
private Long icId;
private String infoStandby1;
private String infoStandby2;
private String infoStandby3;