Ответ был принят, тем не менее, вот некоторая дополнительная информация и личный опыт, который я еще не выдвинул.
Используйте имена столбцов (предпочтительны константы, а не литералы) в общем и по возможности. Это и понятнее, и проще в обслуживании, и будущие изменения с меньшей вероятностью нарушат код.
Однако существует использование индексов столбцов. В некоторых случаях это происходит быстрее, но этого недостаточно, чтобы это перекрывало приведенные выше причины имен *. Это очень ценно при разработке инструментов и общих методов, касающихся ResultSet
s. Наконец, может потребоваться индекс, потому что у столбца нет имени (например, безымянного агрегата) или есть повторяющиеся имена, поэтому нет простого способа сослаться на оба.
* Обратите внимание, что я написал несколько драйверов JDBC и заглянул внутрь некоторых открытых источников, один, и внутри они используют индексы столбцов для ссылки на столбцы результатов. Во всех случаях, с которыми я работал, внутренний драйвер сначала сопоставляет имя столбца с индексом. Таким образом, вы можете легко увидеть, что имя столбца во всех этих случаях всегда будет занимать больше времени. Это может быть не верно для всех драйверов.