Toon posts:

[java/jdbc]rs.getObject() mapping datatypes

Pagina: 1
Acties:

Verwijderd

Topicstarter
recordset.getObject(kolumname) geeft een object terug van "overeenkomend" java type;
bvb:
type van opgezochte kolom: varchar, dan is het resultaat een object van het type string; Jdbc handelt dit voor u automatisch af!
Nu zou ik graag VOOR het inlezen van een tabel het java type weten (voor in een mapping file).
Ik kan het er nu uithalen doormiddel van gegenereerdeObject.getClass(). Dit werd perfect buiten wanneer er nog geen records in de tabel staan!

Met behulp van metadata kan je het sqldatatype van je kolom achterhalen. Is er ergens in java een method: getKlassForSqlDataType?

Er staan wel tabellen op het internet maar het is nogal "belachelijk" om zo´n tabel manueel in een Map te gaan steken.
Er is wel een klasse typemap maar dient alleen op UDT in te bewaren. Uiteraard zou je hier het paar ("varchar",String.class) enzoverder aan kunnen toevoegen, maar dit is nogal belachelijk en slecht onderhoudbaar!

Verwijderd

deze functie bijvoorbeeld?
haalt info op over alle kolommen in je tabel.

maar niet het java datatype

wat jij wilt weten (alle SQL <=>) Java Datatype mappings) bestaat niet omdat niet alle DB-drivers dezelfde SQL datatype <=> Java datatype mapping gebruiken

en die UDT mappings zijn er niet om info uit je database te halen, maar om te beschrijven wat voor java-object je terug wilt krijgen voor een bepaald sql datatype

bv een SQL varchar kan je mappen naar een String, een StringBuffer of een char[]
Different relational DBMSs often support different features, implement features in different ways, and use different data types.
quote uit het linkje hierboven

[ Voor 86% gewijzigd door Verwijderd op 22-12-2004 18:23 ]


  • Standeman
  • Registratie: November 2000
  • Laatst online: 01:03

Standeman

Prutser 1e klasse

De enige (goede) oplossing is om een eigen implementatie te schrijven van de ResultSet interface (zoals alle DB vendors het ook doen).

Maar waarom wil je dat eigenlijk? Werk je met dynamische DDL ofzo?

The ships hung in the sky in much the same way that bricks don’t.


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Of je gebruikt iets als www.hibernate.org. Een O/R mapper die alle irritante sql rotzooi voor je regelt zodat je je alleen druk hoeft te maken om de echt interessante dingen.

Verwijderd

Topicstarter
het punt is dat de omzetting van db types naar algemene sql types door de jdbc driver wordt gedaan MAAR de omzetting van sqltypes naar java types wordt door java gedaan, De klasse java.util.sql.Types: hierin staan de algemene types.

Ik heb ergens in de api gelezen waarin da ze omschrijven dat java ze zelf zoekt... maar deze methode wordt blijkbaar niet exposed?
Pagina: 1