java 读取clob

CreationTime--2018年7月1日09点41分

Author:Marydon

1.说明

  jdbc 数据类型为Clob,与java的String类型相对应。

2.导入

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.sql.Clob;

3.代码实现

public List<Map<String, Object>> queryForList() {
List<Map<String, Object>> rowList = new ArrayList<Map<String, Object>>();
String driver = "";
String url = "";
String username = "";
String password = "";
String sql = "";
log.info("查询sql条件:" + sql);
try {
// 加载驱动程序,此处运用隐式注册驱动程序的方法
Class.forName(driver);
log.info("加载驱动成功!");
} catch (ClassNotFoundException e) {
log.error("加载驱动程序,此处运用隐式注册驱动程序的方法出错:" + e.getMessage());
e.printStackTrace();
}
try {
// 创建连接对象
Connection con = DriverManager.getConnection(url, username, password);
// 创建sql执行对象
Statement st = con.createStatement();
// 执行sql语句并返回结果集
ResultSet rs = st.executeQuery(sql);
// 获得结果集结构信息,元数据
ResultSetMetaData rsmd = rs.getMetaData();
// 获得列数
int columnCount = rsmd.getColumnCount();
// 用于接收每行数据
Map<String, Object> rowData = null;
// clob类型
Clob clob = null;
// clob转成String
String clobString = "";
while (rs.next()) {
rowData = new HashMap<String, Object>();
for (int i = 1; i <= columnCount; i++) {
// 判断数据类型是否为Clob
if (rs.getObject(i) instanceof Clob) {// Clob转String
clob = (Clob) rs.getObject(i);
clobString = clob.getSubString((long) 1, (int) clob.length());
rowData.put(rsmd.getColumnName(i), clobString);
} else {
rowData.put(rsmd.getColumnName(i), rs.getObject(i));
} }
rowList.add(rowData);
} // 关闭相关的对象
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
return rowList;
}

相关推荐:

 

最新文章

  1. clearTimeout消除闪动
  2. Eclipse导入 appcompat,design兼容包
  3. windows docker测试
  4. Enem 实用方法
  5. mysql 5.7 64位 解压版安装
  6. int21 h
  7. IE连EXCHANGE的HTTPS时,出现错误
  8. JavaScript-学习一_var
  9. 修改TFS与本地源代码映射路径
  10. 通过 dhcp-agent 访问 Metadata - 每天5分钟玩转 OpenStack(168)
  11. 互怼、IPO、雷潮、寒冬,2018 互联网圈的那些事儿
  12. scrapy 之自定义命令运行所有爬虫文件
  13. [CQOI2017]老C的方块
  14. Servlet会话管理三(HttpSession)
  15. 第一个 MVC 应用程序(下半部分)
  16. AQS源码分析
  17. spring boot常用注解使用小结
  18. 获取FirefoxProfile配置文件以及使用方法介绍
  19. EF数据更新时候异常情况一
  20. SVM核技巧的经典解释

热门文章

  1. MAC &#19978;&#30340; Live Writer : ecto
  2. caffe 生成检测框并绘图
  3. 谈谈Enter回车键提交表单那些事 回车搜索 enter搜索
  4. 我的Visual Studio 2013常用快捷键
  5. C#如何判断线程池中所有的线程是否已经完成(转)
  6. FastReport.Net 入门
  7. [leetcode]Permutations @ Python
  8. jquery validate的漂亮css样式验证
  9. Flask Restful服务简单实现
  10. 用条件随机场CRF进行字标注中文分词(Python实现)