In JDBC, perché gli indici dei parametri per le istruzioni preparate iniziano da 1 anziché 0?

StackOverflow https://stackoverflow.com/questions/616135

Domanda

In qualsiasi altra parte di Java, qualsiasi cosa con un indice inizia da 0. C'è un motivo per cambiare qui o è solo un cattivo design?

È stato utile?

Soluzione

Storicamente, i database hanno utilizzato l'indicizzazione basata su 1 per i parametri associati. Ciò probabilmente riflette le origini dei database relazionali nella teoria degli insiemi e nella matematica, che indicizzano gli elementi che iniziano con uno e usano zero per rappresentare un insieme nullo o vuoto.

Negli script di shell e nelle espressioni regolari, l'indice zero di solito significa qualcosa di "speciale". Ad esempio, nel caso di script di shell, l'argomento zeroth "argomento". è in realtà il comando che è stato invocato.

La scelta per JDBC è stata deliberata ma, alla fine, probabilmente causa più confusione e difficoltà di quante non risolva.

Altri suggerimenti

Questo faceva parte di una trama dei progettisti del linguaggio originale per eliminare i deboli. Nelle specifiche originali, le matrici erano numerate da -1 e gli elenchi con 1 elemento restituivano lunghezza = 0.

Oggi, solo l'API del calendario java rimane di questo diagramma diabolico.

Personalmente lo aggiungerei al cattivo design.

Comprendo che sia JDBC che ODBC si basano sull'interfaccia X / Open Call Level. Quindi, è la storia pre-Java, come i numeri dei mesi in base 0.

Probabilmente è che JDBC è stato modellato su ODBC.

Forse più amico dell'uomo? Inoltre, il gruppo Matcher di espressioni regolari Java inizia con 1 come primo gruppo associato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top