Java连接Mysql数据库,如何获取所有的数据库名

publicArrayList<String>ShowDB(){Conn(Login.address,Login.DBname,Login.DBpass);Strings... public ArrayList<String> ShowDB(){
Conn(Login.address,Login.DBname,Login.DBpass);
String sql="show databases";
ArrayList<String> arr = null;
try {
pstm=conn.prepareStatement(sql);
ResultSet rs=pstm.executeQuery();
arr=new ArrayList<String>();
for (int j = 1; rs.next(); j++) {
arr.add(rs.getString(j));
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return arr;
}
报错信息
Column Index out of range, 2 > 1. information_schema,
展开
 我来答
千锋教育
2016-01-14 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
查询mysql中所有数据库名称
一,这种方法像执行普通的SQL语句一下,sql如下:
SELECT `SCHEMA_NAME`
FROM `information_schema`.`SCHEMATA`
二,
List<String> list=new ArrayList<String>();
//String sql="SELECT SCHEMA_NAME FROM information_schema.SCHEMATA";
try{
//Statement st=(Statement) conn.createStatement();
DatabaseMetaData dmd=(DatabaseMetaData) conn.getMetaData();
ResultSet rs=dmd.getCatalogs();
while(rs.next()){
list.add(rs.getString("TABLE_CAT"));
}
}catch(SQLException e){
e.printStackTrace();
}
白菜一颗
2015-04-08 · TA获得超过8916个赞
知道大有可为答主
回答量:3260
采纳率:69%
帮助的人:3682万
展开全部
select SCHEMA_NAME from information_schema.schemata

这样就能取到所有的数据库名

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6705c13
2015-04-08 · TA获得超过801个赞
知道小有建树答主
回答量:613
采纳率:83%
帮助的人:191万
展开全部
pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
arr = new ArrayList<String>();
while(rs.next()){
    arr.add(rs.getString(0));
}
rs.close();
pstm.close();

另外需要有足够的权限

追问
Column Index out of range, 0 < 1又报这个错的说。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式