show databases java_从jdbc调用derby(java db)'show tables'

我需要在Java程序中使用JDBC枚举Derby(又名Java DB)数据库中的表。我知道这样做是SHOW TABLES命令。

我第一次尝试了类似的东西......

String strConnectionURL = "jdbc:derby:/path/to/derby/database;create=false";

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

Connection connection = DriverManager.getConnection(strConnectionURL);

Statement statement = connection.createStatement();

boolean boResult = statement.execute("SHOW TABLES");

if (boResult) {

System.out.println("yay!");

}...但是会抛出一个异常:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "SHOW" at line 1, column 1.所以接下来我想也许我需要使用CallableStatement,所以我尝试了这个...

String strConnectionURL = "jdbc:derby:/path/to/derby/db;create=false";

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

Connection connection = DriverManager.getConnection(strConnectionURL);

CallableStatement statement = connection.prepareCall("SHOW TABLES");

boolean boResult = statement.execute();

if (boResult) {

System.out.println("yippee!");

}...但是会抛出同样的异常:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "SHOW" at line 1, column 1.那么,任何人都可以帮我枚举JDBC中的Derby(Java DB)数据库中的表吗?

编辑 b>:我环顾四周,开始感觉这可能是一个普通的JDBC问题。换句话说,我们可以枚举一个数据库的表,并且可以从Connection对象中检索DatabaseMetaData对象。展望(并期待回应)......

编辑2 b>:我发现了一个纯粹的JDBC解决方案,但我仍然很乐意听到替代方案......

String strConnectionURL = "jdbc:derby:/path/to/db;create=false";

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

Connection connection = DriverManager.getConnection(strConnectionURL);

DatabaseMetaData dbmd = connection.getMetaData();

ResultSet resultSet = dbmd.getTables(null, null, null, null);

while (resultSet.next()) {

String strTableName = resultSet.getString("TABLE_NAME");

System.out.println("TABLE_NAME is " + strTableName);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值