//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;
}
}
这个方法有点麻烦,不知大家有什么简单的方法,实现将从数据库得到的数据库名,表名,列名显示在相应的下拉列表中