看看这段代码
public void tablesToXml(StringBuffer xml,Connection conn,String tName,String where) throws java.sql.SQLException{
   //System.err.println("select * from "+tName+" where "+where);
   String keyName=null,keyValue=null;
ResultSet rsM =null;
   DatabaseMetaData dbmd= conn.getMetaData();
ResultSet rs = dbmd.getPrimaryKeys(null,null,tName);
while (rs.next()) keyName=rs.getString(4);
rs.close();
Statement stmt = conn.createStatement();
rs = stmt.executeQuery("select * from "+tName+' '+where);
ResultSetMetaData rsmd=rs.getMetaData();
int count=rsmd.getColumnCount()+1;
while (rs.next()){
xml.append('<'+tName+">\n");
if (keyName!=null)
keyValue=rs.getString(keyName);
for (int i=1;i<count;i++)
xml.append('<'+rsmd.getColumnName(i)+'>'+rs.getString(i)+"</"+rsmd.getColumnName(i)+">\n");
   //xml.append(keyName+'='+keyValue);
   if (keyName!=null){
   rsM = dbmd.getExportedKeys(null,null,tName);
   while (rsM.next())
   tablesToXml(xml,conn,rsM.getString(7),"where "+rsM.getString(8)+"='"+keyValue+"'");
   rsM.close();
};
xml.append("</"+tName+">\n");
};
rs.close();
stmt.close();
   }