//java类函数获取一个库中所有的数据库名称,结果反回给一个ResultSet类型的rs;
public ResultSet getSqldatabaseName()
 {
  String sql = "select name from master..sysdatabases order by name";
  try
  {
   Statement stmt = dblink_sql().createStatement();
   rs = stmt.executeQuery(sql);
  }
  catch (SQLException e)
  {
   e.printStackTrace();
  }
  return rs;
 }
//jsp页面上对所得到的结果进行xml转换,example是java类的一个实例,调用getMysqldatabaseName()函数
ResultSet rs=example.getMysqldatabaseName();//
  result += "<portletDefinitions>";
  int count=0;
  while(rs.next())
     {
   result += "<feild><id>"+(count++) +"</id>";
   result += "<feildvalue>"+rs.getString(1)+ "</feildvalue></feild>";
  }
 
     result+="</portletDefinitions>";//结果将是个xml文件
//在js页面上将得的xml进行解析,将得到的数据库名显示在相应的下拉列表中
js函数如下:
function showfieldvalue_database()
{
  var sList = document.getElementById("database_name"); 
  //Clear out all old options
  var optsLen = sList.options.length;
  for(i=0; i<optsLen; i++)
  {
     sList.remove(0);
  }  
  //add in new options
  new showfieldvalueLoader_database("database_name");
}
function showfieldvalueLoader_database(ToId)
{
 var root=xmlHttp_database.responseXML.documentElement;
 fieldvalueDefs = root.getElementsByTagName('feild');
 list = document.getElementById(ToId);
 for(i=0; i<fieldvalueDefs.length; i++)
 {
  name  = new EZDom(fieldvalueDefs[i]).getChildValue('feildvalue');
  list.options[i] = new Option(name, name);
 } 
}
function EZDom(anElement)
{
 this.anElement = anElement;
 
    this.getChildValue = function(name)
    {
    return this.anElement.getElementsByTagName(name)[0].firstChild.data;
    }
}
 这个方法有点麻烦,不知大家有什么简单的方法,实现将从数据库得到的数据库名,表名,列名显示在相应的下拉列表中