当前位置: 首页 > 知识库问答 >
问题:

为什么显示表比数据库元数据更好。在数据库中查找特定表时使用getTables()?

公西良骏
2023-03-14

我目前在Java程序中有一个方法,使用JDBC检查MySQL数据库中是否存在特定的表。我遇到了一个逻辑错误,其中数据库元数据。getTables()方法从不同的数据库返回相同的命名表,我现在通过在下面的语句中指定catalog(表表示我要查找的表名)解决了这个问题

    ResultSet tables = connectionToDatabase().getMetaData().getTables("snakeandladder", null, table, null);

然而,在做了一些研究后,我看到很多人建议使用显示表来代替,但实际上并没有解释为什么使用上面的显示表。
有人能向我解释使用上面的语句的局限性以及为什么显示表会更好的选择?谢谢你!

共有1个答案

徐昆
2023-03-14

数据库ata.get表()更易于移植,大多数数据库(不仅仅是MySQL)应该能够通过定义的API提供信息。

另一方面使用MySQL特定的查询“显示表可能弊大于利:

>

  • 您引入了一个可被攻击者利用的查询字符串,并且代码现在包含一个静态编译的查询字符串

    如果数据库提供程序发生变化,那么代码就必须更新(同样是可移植性)

  •  类似资料:
    • 我还是MySQL的新手,甚至比MySQLI更新。我试图用MySQLI更新我的网站,但我似乎无法解决最后一个问题。 我的网站是一个单页网站,页面上有50个类别。每个类别都有一个类别标题。我在数据库中有一个表,其中包含所有50个类别的标题和id。我使用MySQL/PHP在每个类别的顶部显示每个类别的标题,具体选择行和列。这是我的代码... 查询: 回声声明: 这允许我选择要显示的行和列。 我如何在My

    • 全部的 只是想看看用表单中提交的数据更新数据库行的最佳选项是什么。我理解Laravel更新查询生成器,但是我在如何获取表单数据,然后执行该查询方面遇到了困难。相对较新的Laravel:)这是我想出的,只是从我的PHP经验和逻辑: 我曾试图将查询放入一个函数中,然后让表单操作成为函数: 正如我所说,主要问题是试图让命名的表单对象成为更新行的对象。我有两个文本输入字段,分别命名为“body”和“not

    • 我在房间数据库中使用MVVM架构模式,当使用Livedata和update row时,它会立即显示recylerview中的更改。 但是我想在mvvm中使用Rxjava而不是livedata来显示数据和更改,但是当更新一行时,它不会立即在recyclerview中显示更改。这是我的代码: 道 LessonRepository 视图模型 获取片段中列表的方法 更新行的方法 我应该做什么,我应该修复哪

    • SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 . 上一页: 处理事务和DBAPI |下一步: |next| 使用数据库元数据 随着引擎和SQL执行的停止,我们准备开始一些炼金术。SQLAlchemy Core和ORM的核心元素是SQL表达式语言,它允许流畅、可组合地构造SQL查询。这些查询的基础是表示数据库概念(如表和列)的Pytho

    • 问题内容: 有什么命令可以从所有数据库中找到某个表吗?因为我忘了桌子在哪里。谢谢。 问题答案: 使用特定于MySQL的: …或使用ANSI标准INFORMATION_SCHEMA.TABLES:

    • 问题内容: 我正在使用jdbc编写程序,该程序将成为数据库的接口(类似于CRUD应用程序)。我假设我必须编写一个类(例如),该类将对数据库执行所有操作(以及可能会简化为这些操作的某些其他逻辑)。用户界面由一组表和一些按钮组成。要使用Jtable,我需要实现一个类(例如),它是AbstractTableModel的子类。因此,此类将向用户显示我的数据。我需要为数据库架构中的所有表实现这种模型。我不想