【问题标题】:How to get sqlserver database name from datasource name in Java如何从 Java 中的数据源名称中获取 sqlserver 数据库名称
【发布时间】:2011-10-30 07:10:45
【问题描述】:

如标题所示,我想在sqlserver中获取数据库名称,我知道的所有信息都是数据源名称,登录名/密码来获取连接对象,请说明如何正确检索数据库名称,在java中,谢谢!

偶数

【问题讨论】:

  • 数据库名称是什么意思?您指的是 MS-SQL Server 实例名称还是其他名称?
  • 我指的是数据库实例名,如下图:Microsoft SQL Server ODBC Driver Version 06.00.6002 数据源名称:SM9 数据源描述:服务器:*** 数据库:SM9 数据加密:否​​跨度>

标签: java database sqldatasource


【解决方案1】:
public List<String> getServerDataBaseNameList() {
    List<String> dataBaseNameList = new ArrayList<String>();
    try {
        ResultSet resultSet = con.getConnectionMetaData().getCatalogs();
        if (resultSet == null) {
            return null;
        }
        while (resultSet.next()) {
            dataBaseNameList.add(resultSet.getString(1));
        }
        return dataBaseNameList;
    } catch (SQLException e) {
        logger.error("Error during execute select query for fetch server database name");
    }
    return null;
}

【讨论】:

    【解决方案2】:

    从连接对象中获取java.sql.DatabaseMetaData的实例。

    数据库名称可以通过getCatalogs()getSchemas()方法获取(取决于JDBC驱动厂商)。

    ResultSet rs=cn.getMetaData().getSchemas();
    while(rs.next()) {
       System.out.println(rs.getString(1));
    }
    

    或者使用Connection.getCatalog()Connection.getSchema()方法。

    如果您有兴趣获取Oracle 数据库服务器的host nameip address

     ResultSet rs=st.executeQuery("select UTL_INADDR.GET_HOST_NAME from dual");
     while(rs.next())
        System.out.println(rs.getString(1));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多