java获取sql,oracle的字段详细信息(字段类型,长度,精度)

/***
  * 获取oracle数据字段信息(字段名,字段类型,字段长度,数字精度,是否为空)
  * @param con
  * @param table  表名
  * @return  
  */
 public static Map<String,List<String>> getOracleColumn_info(Connection con,String table){
  String sql="select COLUMN_NAME,DATA_TYPE,DATA_LENGTH,DATA_PRECISION,DATA_SCALE,NULLABLE from user_tab_columns where table_name =UPPER('"+table+"')";
  Statement st = null;
  Map<String,List<String>> map = new LinkedHashMap<String, List<String>>();
  try{
   st = con.createStatement();
   ResultSet rs = st.executeQuery(sql);
   List<String> val = null;
   while(rs.next()){
    val = new ArrayList<String>();
    String key = rs.getString("COLUMN_NAME");  //获取字段名
    val.add(rs.getString("DATA_TYPE"));  //获取数据类型
    val.add(rs.getString("DATA_LENGTH"));  //获取数据长度
    val.add(rs.getString("DATA_PRECISION"));  //获取数据长度
    val.add(rs.getString("DATA_SCALE"));  //获取数据精度
    val.add(rs.getString("NULLABLE"));  //获取是否为空
    map.put(key, val);
   }
  }catch (Exception e) {
   e.printStackTrace();
   // TODO: handle exception
  }
  return map;
 }
 
 
 /***
  *  获取sql数据字段信息(字段名,字段类型,字段长度,数字精度,是否为空)
  * @param con
  * @param table
  * @return
  */
 public static Map<String,List<String>> getSQLColumn_info(Connection con,String table){
  String sql="SELECT syscolumns.name  COLUMN_NAME,systypes.name  DATA_TYPE,syscolumns.length ,syscolumns.prec, syscolumns.scale ,syscolumns.isnullable FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype  AND syscolumns.id = object_id('"+table+"')";
  Statement st = null;
  Map<String,List<String>> map = new LinkedHashMap<String, List<String>>();
  try{
   st = con.createStatement();
   ResultSet rs = st.executeQuery(sql);
   List<String> val = null;
   while(rs.next()){
    val = new ArrayList<String>();
    String key = rs.getString("COLUMN_NAME");  //获取字段名
    val.add(rs.getString("DATA_TYPE"));  //获取数据类型
    val.add(rs.getString("length"));  //获取数据长度
    val.add(rs.getString("prec"));  //获取数据长度
    val.add(rs.getString("scale"));  //获取数据精度
    val.add(rs.getString("isnullable"));  //获取是否为空
    map.put(key, val);
   }
  }catch (Exception e) {
   e.printStackTrace();
   // TODO: handle exception
  }
  return map;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值