没有合适的资源?快使用搜索试试~ 我知道了~
java使用jdbc将数据库数据导出到csv文件.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 149 浏览量
2021-12-16
22:03:14
上传
评论
收藏 67KB PDF 举报
温馨提示
试读
7页
java使用jdbc将数据库数据导出到csv文件
资源推荐
资源详情
资源评论
//获取连接,自行替换为自己的
Connection conn = reqBean.getDataSyncExecInfo().getConn();
//sql 改为自己的
String sql = reqBean.getDataSyncExecInfo().getSql();
if ( null == conn|| null == sql){
throw new Exception("连接和sql不能为空");
}
ResultSet rs = null;
String file_name = UUID.randomUUID().toString() + ".csv";
BufferedWriter csvFileOutputStream = null;
File csvFile = null;
try {
//生成文件
csvFile = new File(file_name);
try {
csvFileOutputStream = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "utf-8"), 1024);;
} catch (Exception e) {
log.error("生成cvs文件异常", e);
throw new Exception("生成cvs文件异常");
}
log.info("文件路径:"+csvFile.getAbsolutePath());
StringBuilder sb = new StringBuilder();
Statement st = conn.createStatement();
rs = st.executeQuery(sql);
//获取元数据信息
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
Map<String,Object> row = null;
String columnName=null;
Object value=null;
List<String> valueList = new ArrayList<>();
while (rs.next()) {
for (int i = 1; i <= columnCount; i++) {
columnName =metaData.getColumnLabel(i);
value = rs.getObject(columnName);
if(null != value) {
/**
* 目前使用object, TIMESTAMP 会丢失时分秒的精度
*/
if ("TIMESTAMP".equalsIgnoreCase(metaData.getColumnTypeName(i)) ){
value = rs .getTimestamp(columnName);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
value = format.format(value);
}
if ("DATE".equalsIgnoreCase(metaData.getColumnTypeName(i))) {
value = rs .getDate(columnName);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
value = format.format(value);
}
if ("DATETIME".equalsIgnoreCase(metaData.getColumnTypeName(i))) {
value = rs .getDate(columnName);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
value = format.format(value);
}
if ("null".equals(value)) {
value = "" ;
}
} else {
value = "" ;
}
valueList.add(String.valueOf(value));
}
sb.append(StringUtils.join(valueList,","));
log.info("row:"+sb.toString());
//将数据写入到 sb中, 逗号分隔
csvFileOutputStream.write(sb.toString());
csvFileOutputStream.newLine();
sb.delete(0,sb.length());
valueList.clear();
}
} catch (SQLException e) {
if(csvFile != null) {
csvFile.delete();
}
log.error("数据导出到文件异常,已删除该文件:"+csvFile.getAbsolutePath(),e);
throw e;
} finally {
if (rs != null) {
rs.close();
}
if (conn != null) {
conn.close();
}
if(csvFileOutputStream != null) {
try{
资源评论
- 行走的数据智能2022-12-14资源很好用,有较大的参考价值,资源不错,支持一下。
- qq_568998732022-10-20内容与描述一致,超赞的资源,值得借鉴的内容很多,支持!
一诺网络技术
- 粉丝: 0
- 资源: 2万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功