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

应用Spring操作oracle中clob类型字段

阅读更多
今天要做个oracle中多clob类型字段操作的东西,到网上找了一下,参考很多。这里总结下:
1、 插入clob字段

private LobHandler lobHandler = new DefaultLobHandler();;
CommonsDbcpNativeJdbcExtractor nativeJdbcExtractor = = new CommonsDbcpNativeJdbcExtractor();
String sql = "insert into gg (test1,colb1) values ('',?)";
final String str = ""   //Clob的值
OracleLobHandler handler = new OracleLobHandler();
handler.setNativeJdbcExtractor(this.nativeJdbcExtractor);
this.lobHandler = (LobHandler) handler;
jdbcTemplate.execute(sql, new AbstractLobCreatingPreparedStatementCallback(this.lobHandler){
protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException,
DataAccessException
    {
      lobCreator.setClobAsString(ps, 1 , str ); //设置详细的CLOB字段的内容
     }
}
2、 修改clob字段
public void modifyXML(String sql,final String xml){
CommonsDbcpNativeJdbcExtractor nativeJdbcExtractor = new CommonsDbcpNativeJdbcExtractor();
final OracleLobHandler handler = new OracleLobHandler();
handler.setNativeJdbcExtractor(nativeJdbcExtractor);
RmProjectHelper.getCommonBsInstance().doUpdate(sql, new PreparedStatementSetter(){
public void setValues(PreparedStatement ps) throws SQLException {
handler.getLobCreator().setClobAsString(ps, 1, xml);
}
});

}

3、 取数据
String sql = "select clob1 from gg where id= ?"
jdbcTemplate.query(sql ,
                new Object[] {new Integer(1 )},
                  new  AbstractLobStreamingResultSetExtractor() {
                     protected void streamData(ResultSet rs) throws  SQLException, IOException, DataAccessException {
                          lobHandler.getClobAsCharacterStream(rs, 1 ); //得到Clob,需要自己处理
                      }
                   });

或者:
public List getPublicArticle(String sql){
List articleList = RmProjectHelper.getCommonBsInstance().doQuery(sql,new RowMapper() {
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
ResultSet r = rs;
String[] articleArray = new String[] { rs.getString("ID"),
ClobToString(rs.getClob("DATA_XML")),
rs.getString("PUBLISH_STATUS"),
rs.getString("TAGBUNDLE_ID"),
rs.getString("MARK_TYPE"),
rs.getString("COLUMN_NAME"),
rs.getString("LAST_OPERATOR"),
rs.getString("LAST_OPERATE_TIME")
};
return articleArray;
}
});
return articleList;
}

取出clob类型后需要自己转换成String:

public String ClobToString(java.sql.Clob clob){
        String reString = "";
        Reader is;
        StringBuffer sb = new StringBuffer();
try {
is = clob.getCharacterStream();
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
sb.append(s);
s = br.readLine();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
        reString = sb.toString();
        return reString;
    }
0
0
分享到:
评论

相关推荐

    spring+hibernate操作oracle的clob字段

    J2EE开发中,经常会遇到存储大文本的文字信息,而oracle数据库的vachar字段最大能存储4000个字节,存储更大的信息必须使用clob或blob字段,本文档就是针对j2ee开发中对colb字段操作的实现。

    oracle中使用jdbc读写clob和blob字段

    oracle中使用jdbc读写clob字段,很多细节介绍,内容全面。

    Mybatis 处理 CLOB、BLOB 类型数据

    Mybatis 处理 CLOB、BLOB 类型数据

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

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

    spring+hibernate 解决大字段(clob)

    是我自己验证过的 用的是oracle10数据库 文件里面有具体的配置。

    Spring中文帮助文档

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    ssh(structs,spring,hibernate)框架中的上传下载

    BlobByteArrayType使用从sessionFactory获取的Lob操作句柄lobHandler将byte[]的数据保存到Blob数据库字段中。这样,我们就再没有必要通过硬编码的方式,先insert然后再update来完成Blob类型数据的持久化,这个原来难...

    Spring API

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    spring-batch-multithreaded:spring-batch-多线程

    我们必须从第一个 DB 的 CLOB 字段中提取一些 XML,通过多个线程使用给定的 XSL 对其进行转换,然后将转换后的 XML 插入到第二个 DB 中。 如果您从 IDE 运行应用程序,请使用以下参数: 主类:org.springframework....

    DBKING使用指南

     3、统一的数据库操作类型。在dbking中,所有的数据库数据只有五种数据类型,String、Number(BigDecimal)、Timestamp、Clob(String)、Blob(byte[]),经过反复测试后,我们会例出各种数据库数据类型到这五种...

    Javashop开发规范V2.2

    Javashop开发规范V2.2 版本 说明 提交人 ...2.在spring文件中声明parent为baseSupport 3.通过this.baseDaoSupport操作数据库 实际使用的是:com.enation.eop.sdk.database.BaseJdbcDaoSupport 此种操作示例: ...

Global site tag (gtag.js) - Google Analytics