首页 > 代码库 > grails中如何存取Clob类型数据
grails中如何存取Clob类型数据
首先说一下CLOB。CLOB是一种数据库中的数据类型,它将字符大对象存储为数据库表某一行中的一个列值,请注意,这里说的是字符大数据,驱动程序使用 SQL locator(CLOB) 实现 Clob 对象,这意味着 CLOB 对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身,也就是说,在表里面,Clob类型的存储的字段,它里面存的是一个指针而不是数据本身,这在统计时非常好用,因为你不需要知道数据是什么,只需要知道有多少个数据就够了。
这里也说明一下CLOB和BLOB的区别
1.CLOB是使用CHAR来保存数据,也就是说它是面对字符流的,如果它是保存一些相片之类的,会把二进制转化为字符进行存储。
2.BLOB是试用二进制来保存数据的。
如何在grails中存储Clob类型数据:
1.在javaAPI中,Clob是一个接口,这个接口的一个实现类就是javax.sql.rowset.serial.SerialClob,通过这个构造参数就可以把一个数据以Clob字符串存进数据库。例如:(此处buffer是一个StringBuffer的一个对象)
salarySettleOriginInstance.content = new javax.sql.rowset.serial.SerialClob(buffer.toString().toCharArray())
如何在grails中读取Clob类型数据:
1.这里要使用javax.sql.rowset.serial.SerialClob类的getSubString(long pos,
int length
)方法来抓取数据库的Clob类型字段,它返回包含在此 SerialClob
对象中的子字符串的副本,从给定位置开始,后跟指定字符数。例如:
def content = salarySettleOriginInstance.content.getSubString((Long)1, (int)salarySettleOriginInstance.content.length())
参数:
pos
- 子字符串中要复制的第一个字符的位置;SerialClob
对象的第一个字符位于位置1
;不得小于1
,并且开始位置与子字符串的长度之和必须小于此SerialClob
对象的长度length
- 子字符串中要返回的字符数;不得大于此SerialClob
对象的长度,并且开始位置与子字符串的长度之和必须小于此SerialClob
对象的长度返回:
包含此
SerialClob
对象的子字符串的String
对象,从给定位置开始,包含指定的连续字符数抛出:
SerialException
- 如果两个参数中的任意一个超出限制
此文章是针对grails存取Clob数据类型的,如果使用原始的java语音的jdbc进行存取,请参考Clob百度摆酷,附加链接http://baike.baidu.com/view/1889327.htm?fr=aladdin
ps:此处javaJDK为1.7,grails版本为2.2
本文出自 “技术随笔” 博客,请务必保留此出处http://6367966.blog.51cto.com/6357966/1579378
grails中如何存取Clob类型数据