2013-06-07 40 views
5

Tôi đã thực hiện thao tác CRUD trên cơ sở dữ liệu, nhưng tôi không thể tìm thấy bất kỳ phương thức trực tiếp nào cho việc lấy kiểu dữ liệu char trong cơ sở dữ liệu.Cách lấy kiểu dữ liệu char từ mysql bằng cách sử dụng resultset

Mặc dù tôi đã đạt được kết quả bằng cách sử dụng getString(String column_name) của tập kết quả, nhưng tôi tự hỏi tại sao không tồn tại bất kỳ phương thức nào như getChar(String column_name), vì Chuỗi và Ký tự là hai loại dữ liệu khác nhau.

+0

Chỉ cần lấy ký tự đầu tiên của chuỗi, do nó không phải null hoặc trống của khóa học. –

Trả lời

5

Tham khảo link và xem bảng 3-1 và bạn sẽ nhận được ý tưởng hợp lý rằng tại sao không tồn tại getChar(String column_name).

Tóm tắt: Ánh xạ char là String. Vì vậy, tồn tại getString(String column_name) đối với loại dữ liệu char

4

Đó là bởi vì Char trong MySQL không thực sự có nghĩa là một giá trị char số ít, nó thực sự có nghĩa là một mảng ký tự. Trong java, một mảng các ký tự được biểu diễn dưới dạng một String, do đó cùng một phương thức.

1

Cơ sở dữ liệu thường chỉ có một loại để biểu thị tất cả các chuỗi ký tự.

Một char chỉ là trường hợp đặc biệt: một chuỗi có một ký tự, vì vậy sẽ không thực sự hữu ích khi thêm loại này.

Và đừng bị lừa bởi tên của họ như CHAR. :)

10

Khi MySQL thấy, tất cả đều là Strings vì nó không có loại cho một ký tự đơn lẻ. Chắc chắn, bạn có thể đặt CHAR hoặc VARCHAR thành kích thước tối đa, nhưng đây là trường hợp đặc biệt và bạn thường không muốn tạo phương pháp cho các trường hợp đặc biệt khi chức năng đã có sẵn.

Chỉ cần trích xuất các Java char từ kết quả String, như vậy:

getString(column_name).charAt(0) 
+1

Câu trả lời hoàn hảo. Người hỏi phải chọn câu trả lời này làm câu trả lời. –