2013-06-07 30 views
5

Wykonałem operację CRUD na bazie danych, ale nie mogłem znaleźć żadnej bezpośredniej metody uzyskiwania typu danych char w bazie danych.Jak uzyskać typ danych char z mysql przy użyciu zestawu wyników

Mimo, że osiągnąłem wynik za pomocą getString(String column_name) zestawu wyników, ale zastanawiam się, dlaczego nie istnieje żadna metoda taka jak getChar(String column_name), ponieważ String i Character są dwoma różnymi typami danych.

+0

Wystarczy wziąć pierwszy znak łańcucha, ponieważ to nie jest null lub pusty oczywiście. –

Odpowiedz

5

Zobacz link i zobacz tabelę 3-1, a otrzymasz przyzwoity pomysł, że nie istnieje getChar(String column_name).

Podsumowanie: Odwzorowanie znaku jest na ciąg. Tak więc istnieje getString(String column_name) dla typu danych char:

4

To dlatego, że Char w MySQL tak naprawdę nie oznacza pojedynczej wartości char, to naprawdę oznacza tablicę znaków. W java tablica znaków jest reprezentowana jako łańcuch, stąd ta sama metoda.

1

Bazy danych często mają tylko jeden typ do reprezentowania wszystkich ciągów znaków.

Znak jest tylko specjalnym przypadkiem: ciąg znaków z jednym znakiem, więc nie byłoby naprawdę przydatne dodawanie tego typu.

I nie dajcie się zwieść ich imionom, jak CHAR. :)

10

Jak widzi MySQL, to wszystko jest Strings, ponieważ nie ma typu dla pojedynczej litery. Oczywiście można ustawić wartości CHAR lub VARCHAR na wielkości maksymalnie 1, ale jest to przypadek specjalny i zazwyczaj nie ma potrzeby tworzenia metod dla przypadków specjalnych, gdy funkcja już istnieje.

Wystarczy wyodrębnić Java char z powstałego String, jako takich:

getString(column_name).charAt(0) 
+1

Doskonała odpowiedź. Pytający musi wybrać to jako odpowiedź. –