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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值