gpt4 book ai didi

java - 找不到表 Java Glassfish

转载 作者:行者123 更新时间:2023-11-29 21:44:46 25 4
gpt4 key购买 nike

我正在做一个分布式Java项目。我在 GlassFish 中创建了新的 JDBC 资源和连接池(本地主机:4848)。我的Java项目是通过net bean创建的。在配置设置 (web.xml) 下的引用选项卡上 -> 资源引用。我的资源名称正好指向我创建的资源名称。我还使用一些测试代码来打印数据源中的所有表格。

打印数据源中的所有表格

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/GiftDB");
con = ds.getConnection();
DatabaseMetaData md = con.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
System.out.println("DEBUG(RS):" + rs.getString(3));
}

这是不是我期望的输出

Info:   DEBUG(RS):SYSALIASES
Info: DEBUG(RS):SYSCHECKS
Info: DEBUG(RS):SYSCOLPERMS
Info: DEBUG(RS):SYSCOLUMNS
Info: DEBUG(RS):SYSCONGLOMERATES
Info: DEBUG(RS):SYSCONSTRAINTS
Info: DEBUG(RS):SYSDEPENDS
Info: DEBUG(RS):SYSFILES
Info: DEBUG(RS):SYSFOREIGNKEYS
Info: DEBUG(RS):SYSKEYS
Info: DEBUG(RS):SYSPERMS
Info: DEBUG(RS):SYSROLES
Info: DEBUG(RS):SYSROUTINEPERMS
Info: DEBUG(RS):SYSSCHEMAS
Info: DEBUG(RS):SYSSEQUENCES
Info: DEBUG(RS):SYSSTATEMENTS
Info: DEBUG(RS):SYSSTATISTICS
Info: DEBUG(RS):SYSTABLEPERMS
Info: DEBUG(RS):SYSTABLES
Info: DEBUG(RS):SYSTRIGGERS
Info: DEBUG(RS):SYSUSERS
Info: DEBUG(RS):SYSVIEWS
Info: DEBUG(RS):SYSDUMMY1

我在 GlassFish 的 MYSQLPool 中的“附加属性”选项卡下添加了“用户”、“密码”、“URL”字段。我还测试了 ping 服务器,它可以工作。我可以在 SequelPro 等第三方应用程序上访问数据库。

我不知道发生了什么,MySQL 连接成功,但表显示输出是意外的。

最佳答案

您的请求还为您提供了您不想要的系统表。

缩小表格类型的搜索范围:

DatabaseMetaData.html#getTableTypes()

ResultSet getTableTypes() throws SQLException

Retrieves the table types available in this database. The results are ordered by table type. The table type is:

TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM".

ResultSet rs = md.getTables(null, null, null,new String[] {"TABLE"});
System.out.println("List of tables: ");
while (rs.next()) {
System.out.println(
" "+rs.getString("TABLE_CAT")
+ ", "+rs.getString("TABLE_SCHEM")
+ ", "+rs.getString("TABLE_NAME")
+ ", "+rs.getString("TABLE_TYPE")
+ ", "+rs.getString("REMARKS"));
}

关于java - 找不到表 Java Glassfish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com