如标题中所指定的,我想在sqlserver中获取数据库名称,我知道的所有信息都是数据源名称,登录名/密码来获取Connection对象,请显示如何正确检索数据库名称的一些指示,在java中,谢谢!
即使
答案 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 name
或ip 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;
}