【问题标题】:Result set in java returning columns in an order different from ms access table orderjava中的结果集以不同于ms访问表顺序的顺序返回列
【发布时间】:2015-06-10 16:00:36
【问题描述】:

我正在为我的应用程序使用 Ucanaccess JDBC 驱动程序,目前它能够连接到 ms access 数据库,但列的顺序不同,例如在数据库表中,“ID”列是第二个,但它是最后返回的。有没有遇到同样问题的人?

【问题讨论】:

  • 如果您需要以相同的顺序,为选择查询提取数据,明确提供选择语句中的行顺序,例如 "select column1, column2, .... from ..." ,而不是给出一个“从...中选择 *”。

标签: java


【解决方案1】:

使用 ColumnOrder=display 连接参数,例如

jdbc:ucanaccess://c:/db/cico.mdb;COLUMNORDER=DISPLAY

【讨论】:

  • 感谢您的回答jamadei,我已经在我的代码中尝试过它并且它已经工作了,但是我注意到程序变慢了,是Ucanaccess比JDBC ODBC慢还是它的东西可以修复
  • 在 jvm 生命周期中建立与给定数据库的第一个连接通常较慢。隔离这种效果可能会更快,但是对于特定类型的事务(例如大规模更新),您可能需要对代码进行一些处理。也有可能显着缩短首次连接时间,但调整取决于数据大小、内容和结构。
  • @jamadei :非常接近你所说的。但它不起作用。是不是因为版本是Access 2013。是因为版本吗?或者我需要改变任何东西。您的宝贵建议会很有帮助
  • 支持 Access 2013。您应该更好地描述您的问题以获得我们的帮助。你有例外吗?究竟是什么不工作?
【解决方案2】:

如何按您想要的顺序写出所有列而不是使用 *.例如,

select id, name, email from person;

而不是

select * from person;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    相关资源
    最近更新 更多