📄 stringclobtype.java
字号:
/*
* 创建日期 2005-8-30
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package org.infosys.util;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import net.sf.hibernate.UserType;
import net.sf.hibernate.HibernateException;
/**
* @author Administrator
* oracle-clob字段处理类
*/
public class StringClobType implements UserType{
public int[] sqlTypes()
{
return new int[] { Types.CLOB };
}
public Class returnedClass()
{
return String.class;
}
public boolean equals(Object x, Object y)
{
return (x == y)
|| (x != null
&& y != null
&& (x.equals(y)));
}
public Object nullSafeGet(ResultSet rs, String[] names,
Object owner) throws HibernateException, SQLException {
Reader reader = rs.getCharacterStream(names[0]);
if (reader == null) return null;
StringBuffer sb = new StringBuffer();
try {
char[] charbuf = new char[4096];
for (int i = reader.read(charbuf); i > 0; i = reader.read(charbuf)) {
sb.append(charbuf, 0, i);
}
}
catch (IOException e) {
throw new SQLException( e.getMessage() );
}
return sb.toString();
}
public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {
if (value != null) {
StringReader r = new StringReader( (String) value );
st.setCharacterStream( index, r, ((String) value).length() );
} else {
st.setNull(index, sqlTypes()[0]);
}
}
public Object deepCopy(Object value)
{
if (value == null) return null;
return new String((String) value);
}
public boolean isMutable()
{
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -