mysql到hbase数据迁移之getobject

代码:

/**********************************************************************************
连接mysql数据库中的information_schema数据库,获取要迁移的mysql数据库中各个表中的字段数目和名称
***********************************************************************************/
package conn;
import java.sql.*;
public class getobject {
// static int ms[]=null;//用于存放每个表中的字段的数目ms[1]即第一个表的字段数目
//static String[] arr = null;//用于存放字段名称
//static String[] brr = null;//用于存放字段名称对应的数据类型
//static String[][] Arr=null;
//static String[][] Brr=null;
static String[][][] Crr=new String[2][][];
public static String[][][] getob(String database,String[] table) throws Exception {
Connection conn=mysqlconn.connDB();
Statement stmt =  conn.createStatement();
int len=table.length;//实实在在的存在的各个table名 用的是上面table方法查询返回的值
//Arr=new String[len][];
//Brr=new String[len][];
Crr[0]=new String[len][];
Crr[1]=new String[len][];
int m=1;
for(int i=0;i<len;i++){
String query="select  count(COLUMN_NAME) from COLUMNS where TABLE_SCHEMA="+"\""+
database+"\" and TABLE_NAME="+"\""+table[i]+"\""; 
ResultSet rs = stmt.executeQuery(query);//每次只能返回一行
int l=0,n=0;
   while (rs.next()) {// 2 rs共有1行数据
    l=rs.getInt(1);
        //System.out.printf("There are %d tables in your database: %s ! \n",m,database);
        System.out.printf("您要迁移的Mysql数据库-%s中的表-%s共有%d个字段! \n",database,table[i],l);
      //  ms= new int[l];
       // ms[m]=l;
        //System.out.println("table["+m+"]:"+ms[m]);
        System.out.println("table["+m+"]:"+l);
       m++;
       //System.out.println(m);
       // arr=new String[l];
       // Arr[i]=new String[l];
        Crr[0][i]=new String[l];
        //brr=new String[l];
        //Brr[i]=new String[l];
        Crr[1][i]=new String[l];
   }//2 while
   if (rs != null) {
       rs.close();
    } 
   String query1="select  COLUMN_NAME,DATA_TYPE from COLUMNS where TABLE_SCHEMA="+"\""+
database+"\" and TABLE_NAME="+"\""+table[i]+"\""; 
  ResultSet rs1 = stmt.executeQuery(query1);
  while(rs1.next()){
  Crr[0][i][n]=rs1.getString(1);
  Crr[1][i][n]=rs1.getString(2);
 // arr[n]=rs1.getString(1);
  //brr[n]=rs1.getString(2);
System.out.print("Crr[0]["+i+"]["+n+"]:"+Crr[0][i][n]+","+"Crr[1]["+i+"]["+n+"]:"+Crr[1][i][n]+"\t");
//System.out.print("arr["+n+"]:"+arr[n]+","+"brr["+n+"]:"+brr[n]+"\t");
// Arr[i][n]=arr[n];
//Brr[i][n]=brr[n];
//Crr[0][i][n]=Arr[i][n];
//Crr[1][i][n]=Brr[i][n];
  n++;
  }//while外层
  System.out.print("\n");
  if (rs1 != null) {
       rs1.close();
    }
}//for  
if (stmt != null) {
stmt.close();   
    }
    if (conn != null) {
    conn.close();   
    }
return Crr ;
}//getob
}//getobject

注:获取要迁移的数据库中所有数据表的列名及各列的数据类型存储在以个三维数组中。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SONGCHUNHONG/article/details/51828691
上一篇Hive之分区(Partitions)和桶(Buckets)
下一篇关于STL和Boost的理解
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭