Archief - Java, uit resultSet char halen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

design1

Legacy Member
Goedemiddag,
Ik heb een probleem bij het uitlezen van een CHAR via de resultSet.
Als ik, zie onderstaande code, geslacht = rsGeslacht.getByte(1); gebruik dan krijg ik deze foutmelding: java.sql.SQLException: Value 'M' is out of range [-127,127]

Blijkbaar krijg ik toch de waarde terug maar is hij out of range??
Nu weet ik verder niet meer hoe ik deze eruit kan halen??


Code:
public char GeslachtGebruiker(int gebruikerID) throws SQLException
    {
       char geslacht;

       String queryGeslacht = "SELECT geslacht FROM gebruiker WHERE gebruikerID = " + gebruikerID + "";
       rsGeslacht = stmt.executeQuery(queryGeslacht);
       if(rsGeslacht.next())
       {
           //Probleem char halen uit rsGeslacht???
           geslacht = (char) rsGeslacht.getByte(1);
       }
       else
       {
           //L van Leeg
            geslacht = 'L';
       }
       return geslacht;
    }

Bedankt!

forloRn_

Legacy Member
Het character in je DB past niet in één byte, vandaar. Probeer eens met getInt() en dan casten naar char.

design1

Legacy Member
Bedoel je dan geslacht = (char) rsGeslacht.getInt(1);
Dat werkt ook niet ik krijg dan : java.sql.SQLException: Invalid value for getInt() - 'M'

Toch bedankt!

Cycloon

Legacy Member
design1 zei:
Als ik, zie onderstaande code, geslacht = rsGeslacht.getByte(1); gebruik dan krijg ik deze foutmelding: java.sql.SQLException: Value 'M' is out of range [-127,127]

Blijkbaar krijg ik toch de waarde terug maar is hij out of range??

Logisch ook, want een char is 2 bytes dus zal je nooit met getByte() een char kunnen ophalen.

Beste zal wel zijn om getString() te gebruiken :)

design1

Legacy Member
Oké bedankt ik heb deze wel net geprobeerd maar als ik gebruik wil maken van de getString() functie dan moet ik de gegevens in mijn databank wel aanpassen en moet mijn CHAR (M of V) naar VARCHAR omgezet worden!
Ik zou het liefst willen proberen met CHAR.

geslacht = (char) rsGeslacht.getString(1);

hierbij krijg ik een foutmelding net als bij getObject, foutmelding is inconvertible types.

Bedankt

Parnakra

Legacy Member
.getString() zou je moeten kunnen gebruiken om CHARs uit te lezen. Misschien proberen je geslacht variabele als String te initialiseren, zodat casten niet nodig is?

forloRn_

Legacy Member
Mja, aangezien het formaat van een char in Java vastligt (Unicode), zal hij een CHAR wel uitlezen als een String.

Probeer dit eens:
geslacht = rsGeslacht.getString(1).charAt(0);

design1

Legacy Member
Ja, forlorn_ bedankt dit werkt perfect!
Bedankt ook iedereen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan