在oracle里 如果文本超过了4000 达到上W 时...

起几天根据客户的需求。一个小小的表格里面按道理来说总共只有6列、可是每列所需要输入的都是较大的文本、

大家都知道 在进行insert语句的时候 字符类型都只能接受最多4000个字符 在更大的时候就会选用clob

而现在的问题是难道这么一个小小的表格要用到6个clob字段?

占内存太多是个问题、也有可能会让整个程序变得缓慢、、

不知道大家有没有遇上过这个问题、

在这里贴出我解决的方案(本人属于比较菜的程序员、请大家多多包涵哦~)

 

在数据库里面只用一个clob来存储、而后台则用到MAP键值对的特性来存储不同的字段列文字

在存储的时候把界面上面取得的map对象的值转换位xml类型存储、

取出的时候也是一样~~

提供一下公共的方法:

public static String mapToString(Map map) throws BaseException {
		try {
			XStream xstream = new XStream();
			xstream.alias("content", HashMap.class);
			return xstream.toXML(map);
		} catch (Exception e) {
			throw new BaseException(e);
		}
	}

	/**
	 * xstream字符串转换成map
	 * @param xml xstream字符串
	 * @return map对象
	 * @throws BaseException 异常
	 */
	public static Map stringToMap(String xml) throws BaseException {
		try {
			XStream xstream = new XStream();
			xstream.alias("content", HashMap.class);
			return (HashMap) xstream.fromXML(xml);
		} catch (Exception e) {
			throw new BaseException(e);
		}
	}

 

这里面需要用到一个xstrem的jar包、哪位大侠能教教我怎么上次附件呢~  (大家就 自己去下载一个吧、)

转载于:https://www.cnblogs.com/dizchan/archive/2012/02/24/2367027.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值