找不到表格Java Glassfish

时间:2015-12-10 10:23:46

标签: java mysql glassfish

我正在做一个分布式Java项目。我在GlassFish(Localhost:4848)中创建了新的JDBC资源和连接池。我的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连接成功,但表显示输出是意料之外的。

1 个答案:

答案 0 :(得分:0)

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

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

DatabaseMetaData.html#getTableTypes()

  

ResultSet getTableTypes()                           抛出SQLException

     

检索此数据库中可用的表类型。结果是    按表格类型排序。表格类型为:

     

TABLE_TYPE String =>表格类型。典型的类型是“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")); 
              }