如何从Java中的数据源名称获取sqlserver数据库名称

时间:2011-08-19 03:03:33

标签: java database sqldatasource

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

即使

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分: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;
}