oracle表数据用java导出为SQL文件的方法

  1. package com.**.framework.dao;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DatabaseMetaData;  
  5. import java.sql.ResultSet;  
  6. import java.sql.Statement;  
  7. import java.util.ArrayList;  
  8. import java.util.List;  
  9.   
  10. public class ExpSql {  
  11.   
  12.     public static List<Object> getTableInsertSql(Connection conn, String tableName ,String where)  
  13.     throws Exception {  
  14.         ResultSet rs = null;  
  15.         Statement statement = null;  
  16.         List<Object> list=null;  
  17.         try {  
  18.             DatabaseMetaData metadata = conn.getMetaData();  
  19.             rs = metadata.getColumns(nullnull, tableName, "%");    //得到表的字段列表  
  20.   
  21.             String sql = "select 'insert into " + tableName + " values ( '";  
  22.             int count=0;  
  23.             int  counts=0;  
  24.             //获得列的总数  
  25.             while (rs.next()) {  
  26.                 count++;  
  27.   
  28.             }  
  29.             //重新获得列数据 整理成sql  
  30.                 rs = metadata.getColumns(nullnull, tableName, "%");    //得到表的字段列表  
  31.                 while (rs.next()) {  
  32.                     counts++;  
  33.                     if(counts<=count)  
  34.                     {  
  35.                         Object colName = rs.getObject("column_name");  
  36.                         sql += " ||'''' ||" + colName + "|| ''','";  
  37.                     }  
  38.                 }  
  39.                 sql=sql.substring(0,sql.length()-2)+"'";  
  40.                 sql += " || ' );' from " + tableName+ where;  
  41.                 rs.close();  
  42.    
  43.               // System.out.println("DEBUG: SQL="+sql);  
  44.                 //执行  
  45.                 statement = conn.createStatement();  
  46.                 rs = statement.executeQuery(sql);  
  47.                 
  48.                 //将SQL语句放到List中  
  49.                 list=new ArrayList<Object>();  
  50.                 while (rs.next())  
  51.                     list.add(rs.getObject(1));  
  52.                 rs.close();  
  53.           
  54.                 //System.out.println(list.size());  
  55.             } finally {  
  56.                 if (rs != null)  
  57.                     rs.close();  
  58.                 if (statement != null)  
  59.                     statement.close();  
  60.             }  
  61.             return list;  
  62. }  
  63.       
  64. }  

原文:http://zhangwei2012.iteye.com/blog/962941
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值