getCurrentDatabaseName应该有吧
databaseMetadata里应该有类似的

解决方案 »

  1.   

    getCurrentDatabaseName应该有吧
    databaseMetadata里应该有类似的========>没有找不到
      

  2.   

    从数据库连接怎么建立起来处找。是用pool?直接连?然后再去判断。
      

  3.   

    多谢各位,DatabaseMetaData.getSchemaTerm()==》这个不是,目前我已经解决,解决的方法较土但还算靠,办法如下:==============================================================
    public static String getConnectionDatabaseName()
    {
    Map<String,String> map=ConfigHelper.getDataSourceConfig();
    String url=map.get("dataSource.url");
    String userName=map.get("dataSource.username");
    StringBuffer urlTemplate=new StringBuffer();
    urlTemplate.append("oracle=jdbc:oracle:thin:@机器名或IP:1521:SID名称\n\n");
    urlTemplate.append("db2=jdbc:db2://机器名或IP:5000/数据库名称\n\n");
    urlTemplate.append("sqlserver=jdbc:microsoft:sqlserver://机器名或IP:1433;DatabaseName=数据库名称\n\n");
    urlTemplate.append("sybase=jdbc:sybase:Tds:机器名或IP:5007/数据库名称\n\n");
    urlTemplate.append("informix=jdbc:informix-sqli://123.45.67.89:1533/数据库名称:INFORMIXSERVER=机器名或IP\n\n");
    urlTemplate.append("mysql=jdbc:mysql://机器名或IP/数据库名称?user=xx&password=xx&useUnicode=true&characterEncoding=8859_1\n\n");
    urlTemplate.append("postgresql=jdbc:postgresql://机器名或IP/数据库名称\n\n");
    urlTemplate.append("Access=jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=application.getRealPath(\"/路径/access文件\")\n\n");
    if(url.toLowerCase().indexOf("jdbc:oracle:")>-1)//oracle.jdbc.driver.OracleDriver
    {
    return userName.toUpperCase().trim();
    }
    else if(url.toLowerCase().indexOf("jdbc:db2:")>-1)//com.ibm.db2.jdbc.app.DB2Driver  
    {
    return url.substring(url.lastIndexOf("/")+1).trim();
    }
    else if(url.toLowerCase().indexOf("jdbc:microsoft:")>-1)//com.microsoft.jdbc.sqlserver.SQLServerDriver  
    {
    return url.substring(url.lastIndexOf("=")+1).trim();
    }
    else if(url.toLowerCase().indexOf("jdbc:sybase:")>-1)//com.sybase.jdbc.SybDriver  
    {
    return url.substring(url.lastIndexOf("/")+1).trim();
    }
    else if(url.toLowerCase().indexOf("jdbc:informix-sqli:")>-1)//com.informix.jdbc.IfxDriver  
    {
    return url.substring(url.lastIndexOf("/")+1,url.lastIndexOf(":")).trim();
    }
    else if(url.toLowerCase().indexOf("jdbc:mysql:")>-1)//org.gjt.mm.mysql.Driver  
    {
    return url.substring(url.lastIndexOf("/")+1,url.lastIndexOf("?")).trim();
    }
    else if(url.toLowerCase().indexOf("jdbc:postgresql:")>-1)//org.postgresql.Driver  
    {
    return url.substring(url.lastIndexOf("/")+1).trim();
    }
    else if(url.toLowerCase().indexOf("*.mdb")>-1)//sun.jdbc.odbc.JdbcOdbcDriver  
    {
    return url.substring(url.lastIndexOf("=")+1).trim();
    }
    else
    {
    Log4JUtil.error("getCurrentDatabaseName()错误:\n您定义的url:\""+url+"\"与本方法使用的格式不匹配,能否使用如下格式:\n"+urlTemplate.toString());
    return null;
    }
    }
    ==============================================================哪位兄台有更好的办法回复一下?