今天在研究如何将oracle表字段的信息存到列表数组中,做了一点实验,是在java1.5下,用myeclips做的,代码如下:
public static List> gocilist(Connection conn,String table)
{
ResultSet rs = null;
Statement stmt=null;
//Connection conn = null;
String sqlm="select COLUMN_NAME,DATA_TYPE,DATA_LENGTH,DATA_PRECISION,DATA_SCALE,NULLABLE,COLUMN_ID from user_tab_columns where table_name =UPPER('"+table+"')";
List> fv1 = new ArrayList>();
Map fmap = new HashMap();
try{
// conn = dbcon.dbconn();
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs= stmt.executeQuery(sqlm);
while(rs.next()){
fmap = new HashMap();
fmap.put("COLUMN_NAME", rs.getString("COLUMN_NAME"));//获取字段名
fmap.put("DATA_TYPE",rs.getString("DATA_TYPE")); //获取数据类型
fmap.put("DATA_LENGTH",rs.getString("DATA_LENGTH"));//获取数据长度
if(rs.getString("DATA_PRECISION") == null )
{
fmap.put("DATA_PRECISION","");
}
else
fmap.put("DATA_PRECISION",rs.getString("DATA_PRECISION"));//获取数据长度
if(rs.getString("DATA_SCALE") == null)
{
fmap.put("DATA_SCALE","");
}
else
fmap.put("DATA_SCALE",rs.getString("DATA_SCALE"));//获取数据精度
fmap.put("NULLABLE",rs.getString("NULLABLE")); //获取是否为空
fmap.put("COLUMN_ID",rs.getString("COLUMN_ID")); //字段序号
fv1.add(fmap);
}
conn.close();
}catch (Exception e) {
e.printStackTrace(); // TODO: handle exception
}
return fv1;
}
测试语句如下:
fcl=tablist.gocilist("SURVEY"); while(i1 < fcl.size()) { System.out.println("COLUMN_NAME=="+fcl.get(i1).get("COLUMN_NAME")); System.out.println("DATA_TYPE=="+fcl.get(i1).get("DATA_TYPE")); System.out.println("DATA_LENGTH=="+fcl.get(i1).get("DATA_LENGTH")); System.out.println("COLUMN_ID=="+fcl.get(i1).get("COLUMN_ID")); i1=i1+1; }