`
chengyu2099
  • 浏览: 477163 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

hibernate clob 处理大字段

阅读更多
	hibernante 支持 保存对象后 返回该保存的ID号(省去在查询一次啦)

	业务层

	public void addEvent(EventVO eventVO) throws BOException
	{
		DefaultTransactionDefinition def = new DefaultTransactionDefinition();
		def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
		TransactionStatus status = this.transactionManager.getTransaction(def);

		try {
			EventEvents eventEvents = new EventEvents();

			eventEvents.setUserId(Long.parseLong(eventVO.getUserId()));
			eventEvents.setEventName(eventVO.getEventName());
			eventEvents.setProvinceId(Long.parseLong(eventVO.getProvinceId()));
			eventEvents.setCityId(Long.parseLong(eventVO.getCityId()));
			eventEvents.setArea(eventVO.getArea());
			//转换日期型 入库
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//			eventEvents.setStartTime(sdf.parse(eventVO.getStartTime()));
//			eventEvents.setEndTime(sdf.parse(eventVO.getEndTime()));
//			eventEvents.setStopTime(sdf.parse(eventVO.getStopTime()));
			eventEvents.setLimitNumber(Long.parseLong(eventVO.getLimitNumber()));
			eventEvents.setJoinType(Long.parseLong(eventVO.getJoinType()));
			eventEvents.setTemplate(eventVO.getTemplate());
			eventEvents.setTypeId(Long.parseLong(eventVO.getTypeId()));

			//处理 大字段 CLOB
			eventEvents.setEventContent(Hibernate.createClob(" "));


			eventRepository.addEvent(eventEvents); -----------------------------------------------------------见第二部分
			System.out.println("##############"+eventEvents.getEventContent());
			/* 处理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();

			transactionManager.commit(status);

		} catch (Exception e) {
			transactionManager.rollback(status);
			e.printStackTrace();
		}
	}

第二部分
	/**
	 * 新增活动,返回活动ID
	 */
	public void addEvent(EventEvents eventEvents) throws DAOException
	{
		this.saveReturnID(eventEvents);
	}
第三部分
		/**
	 * 保存实体,返回ID
	 *
	 * @param o
	 * @return
	 */
	public Object saveReturnID(Object o) throws DAOException {
		Object id = null;
		try {
			id = this.getMyHibernateTemplate().save(o);
			this.getMyHibernateTemplate().flush();  ---------------------------  大字段处理
			this.getMyHibernateTemplate().refresh(o); ---------------------------大字段处理
		} catch (Exception e) {
			throw new DAOException(e, this.getClass());
		}
		return id;
	}

update==>


	public void modifyEvent(EventEvents event) throws DAOException
	{
		this.update(event);
		this.getMyHibernateTemplate().refresh(event,LockMode.UPGRADE);//锁定
	}



	public void update(Object o) throws DAOException {
		try {
			// BeanCodingConvert.ObjectConvert(o, BeanCodingConvert.GBK2ISO);
			this.getMyHibernateTemplate().update(o);
			this.getMyHibernateTemplate().flush();

		} catch (Exception e) {
			e.printStackTrace();
			throw new DAOException(e, this.getClass());
		}
	}



	读取CLOB ==>String

	//			CLOB 格式 转换 = string
	try {
		Clob clob = expert.getExpertInfor();
		expertInfor = IOUtils.toString(clob.getCharacterStream());
	} catch (IOException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}
分享到:
评论

相关推荐

    hibernate中处理大字段 网上收集的文档

    总结来说,Hibernate处理大字段涉及到数据类型的选用、映射配置、加载策略以及性能优化等多个方面。理解并灵活运用这些知识点,能够帮助我们在实际项目中更好地管理和使用大字段,同时兼顾性能和用户体验。

    Hibernate存储Clob字段的方式总结

    但随着数据库技术的发展,越来越多的数据库厂商提供了更加简单的方式来操作这些大字段。例如,Oracle数据库提供了支持以String方式处理Clob的新驱动程序。 在Hibernate框架中,可以直接将数据库的Clob字段映射为...

    spring+hibernate 解决大字段(clob)

    ### Spring与Hibernate处理大字段(CLOB/BLOB) 在企业级应用开发中,经常会遇到需要存储大量文本或二进制数据的情况,这时就需要用到数据库的大字段类型如CLOB(Character Large Object)和BLOB(Binary Large ...

    Hibernate操作数据库大字段的示例(附源码及详细开发使用方法)。

    1. **保存/更新大字段**:在保存或更新实体时,使用SessionFactory的`save()`或`update()`方法,Hibernate会自动处理大字段的存储。 ```java Session session = sessionFactory.openSession(); Transaction tx = ...

    spring1.2+hibernate2对大字段的处理实例

    在提供的实例中,开发者可能已经展示了如何配置Spring1.2和Hibernate2来处理大字段,包括如何创建映射文件,如何定义实体类,以及如何在服务层和DAO层进行操作。学习这个实例可以帮助理解如何在实际项目中解决类似的...

    spring1.2+hibernate3对大字段的处理实例,供大家学习与交流,可直接运行

    在处理大字段时,Hibernate提供了Blob和Clob类型的支持,用于存储大对象,如文本、图片等。 针对大字段的处理,通常有以下几种策略: 1. **字段分片**:如果一个字段过大,可以将其拆分为多个较小的字段存储,降低...

    spring+hbernate对clob、blob字段的处理

    一个完整的工程,主要功能为:spring+hbernate对clob、blob字段的处理 包括:数据脚本、典型的SSH框架处理,以及spring、hibernate数据批量保存等功能源码、所用到的lib包 数据环境为:oracle 10G 开发:Mycelipse5.1...

    DBKING使用指南

     异构数据库的导入导出一直是个大难题,一般的工具配置复杂,尤其是不支持LOB这样的大字段数据,我们的这个工具不仅配置简单,而且具有以下几个特点。  1、速度非常快,这个因为取决于系统环境,这个只有谁用...

Global site tag (gtag.js) - Google Analytics