日期:2014-05-16 浏览次数:20615 次
?
这个是基本的连接数据库代码(注意要加入连接oracle数据库的jar包):
导入的数据库就是String sc="jdbc:oracle:thin:@192.168.1.223:1521:test";对应的test数据库,所有的表结构都可以导出来。(需要修改为自己对应的ip和端口和数据库名称,上面的是我的地址和数据库)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class ConnectionOracle {
 
/**
* @param args
*/
String sd="oracle.jdbc.driver.OracleDriver";
// String sc="jdbc:oracle:thin:@192.168.1.170:1521:cst";
String sc="jdbc:oracle:thin:@192.168.1.223:1521:test";
String userName = "adminss";
String password = "123456";
// String sd="com.mysql.jdbc.Driver";
// String sc="jdbc:mysql://localhost:3306/payManagerDB?useUnicode=true&characterEncoding=utf8";
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public ConnectionOracle()
  {
  try
  {
  Class.forName(sd);
  }
  catch(Exception e)
  {
  System.err.println(e.getMessage());
  }
  }
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public ResultSet executeQuery(String sql) throws SQLException
  {
  con=DriverManager.getConnection(sc,userName,password);
  Statement stmt=con.createStatement();
  rs=stmt.executeQuery(sql);
  return rs;
  }
public void executeUpdate(String sql) throws SQLException
  {
  con=DriverManager.getConnection(sc,userName,password);
  Statement stmt=con.createStatement();
  stmt.executeUpdate(sql);
  }
public void close() throws SQLException
  {
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(con!=null)
con.close();
  }
}
 
?
下面的代码读取数据库中所有表以及结构到excel中(如果出现问题,首先看是不是你已经打开了这个excel,要先关闭):
?
import java.io.File;
import java.io.FileOutputStream;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;
 
/**
 * 将oracle中的数据表结构导入到excel中保存
 * @class DataToExcel
 * @description 
 * @author 李智慧
 * @copyRight copyright(c) 2011 广东南航易网通电子商务有限公司,Rights Reserved
 * @time Dec 27, 2011 10:02:08 AM
 */
public class DataToExcel {
public static void main(String[] args) {
String result = "";
List listAll = new ArrayList();
System.out.println("正在读取数据库中所有的表");
try {
List tableList = getTableList();
System.out.println("数据库表读取完成");
for(int i=0;i<tableList.size();i++){
String[] strings = (String[]) tableList.get(i);
String tableName = strings[0].toString();
List list = new ArrayList();
list.add(tableName);
list.add(getStructOfTable(tableName));
System.out.println("正在生成表"+tableName+"的结构");
listAll.add(list);
}
result = TableStructInfoToExcel(listAll,"D:");
System.out.println("数据库中表结构导入已完成");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
File file = new File(e.getMessage().toString());
if(file.exists()){
file.delete();
}
}
System.out.println(result);
//showView(list); 
}
/**
* 获取数据库中所有的表
* @return
*/
public static List getTableList(){
String sql = "select object_name From user_objects Where object_type='TABLE'";
return getResult(sql,1);
}
/**
* 根据表明
* @param tableName
* @return
*/
public static List getStructOfTable(String tableName){
String sql = "SELECT u.column_name,u.data_type,u.data_length,u.data_precision,u.data_Scale,u.nullable,u.data_default,c.comments FROM user_tab_columns u,user_col_comments c"+
" WHERE u.table_name='"+tableName+"' and u.table_name=c.table_name and c.column_name=u.column_name";
ret