oracle表数据用java导出为SQL文件的方法
2016-06-14 12:08
543 查看
package com.**.framework.dao;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class ExpSql {
public static List<Object> getTableInsertSql(Connection conn, String tableName ,String where)
throws Exception {
ResultSet rs = null;
Statement statement = null;
List<Object> list=null;
try {
DatabaseMetaData metadata = conn.getMetaData();
rs = metadata.getColumns(null, null, tableName, "%"); //得到表的字段列表
String sql = "select 'insert into " + tableName + " values ( '";
int count=0;
int counts=0;
//获得列的总数
while (rs.next()) {
count++;
}
//重新获得列数据 整理成sql
rs = metadata.getColumns(null, null, tableName, "%"); //得到表的字段列表
while (rs.next()) {
counts++;
if(counts<=count)
{
Object colName = rs.getObject("column_name");
sql += " ||'''' ||" + colName + "|| ''','";
}
}
sql=sql.substring(0,sql.length()-2)+"'";
sql += " || ' );' from " + tableName+ where;
rs.close();
// System.out.println("DEBUG: SQL="+sql);
//执行
statement = conn.createStatement();
rs = statement.executeQuery(sql);
//将SQL语句放到List中
list=new ArrayList<Object>();
while (rs.next())
list.add(rs.getObject(1));
rs.close();
//System.out.println(list.size());
} finally {
if (rs != null)
rs.close();
if (statement != null)
statement.close();
}
return list;
}
}
原文:http://zhangwei2012.iteye.com/blog/962941
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class ExpSql {
public static List<Object> getTableInsertSql(Connection conn, String tableName ,String where)
throws Exception {
ResultSet rs = null;
Statement statement = null;
List<Object> list=null;
try {
DatabaseMetaData metadata = conn.getMetaData();
rs = metadata.getColumns(null, null, tableName, "%"); //得到表的字段列表
String sql = "select 'insert into " + tableName + " values ( '";
int count=0;
int counts=0;
//获得列的总数
while (rs.next()) {
count++;
}
//重新获得列数据 整理成sql
rs = metadata.getColumns(null, null, tableName, "%"); //得到表的字段列表
while (rs.next()) {
counts++;
if(counts<=count)
{
Object colName = rs.getObject("column_name");
sql += " ||'''' ||" + colName + "|| ''','";
}
}
sql=sql.substring(0,sql.length()-2)+"'";
sql += " || ' );' from " + tableName+ where;
rs.close();
// System.out.println("DEBUG: SQL="+sql);
//执行
statement = conn.createStatement();
rs = statement.executeQuery(sql);
//将SQL语句放到List中
list=new ArrayList<Object>();
while (rs.next())
list.add(rs.getObject(1));
rs.close();
//System.out.println(list.size());
} finally {
if (rs != null)
rs.close();
if (statement != null)
statement.close();
}
return list;
}
}
原文:http://zhangwei2012.iteye.com/blog/962941
相关文章推荐
- 完全卸载oracle11g步骤
- 安装oracle 11g 遇到的问题ORA-01078 ORA-01034
- oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
- Oracle数据库监听配置
- 【引用】ORACLE 10G 的安装过程
- 通过JDBC连接oracle数据库的十大技巧
- Oracle安装图解
- Oracle SQL语句执行完整过程:
- select视图报错ORA-01031(oracle跨用户基表视图授权)
- Oracle用Loop循环实现大量CRUD操作
- Oracle:导入导出
- 虚拟机下red hat 6.5 linux安装oracle11g
- ubuntu 16.04下安装oracle jdk 1.7
- MyBatis oracle 批量 insert update 新增 更新
- Oracle中的MD5加密
- group by , order by , having 的用法
- oracle中普通用户如何查看自己登录的数据库名称?这个用户与scott权限相同,无法切换到sys下面!没有权限查看v$database和v$instance
- select from where 格式详解
- Oracle的substr函数简单用法
- Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法