在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包、哪位大侠能教教我怎么上次附件呢~  (大家就 自己去下载一个吧、)

posted on 2012-02-24 17:40  candiceChan  阅读(428)  评论(0编辑  收藏  举报

导航