Chương 1: Giới thiệu về lập trình cho điện thoại di động 4 1.1. Sự tiến hóa của điện thoại di động, các mạng và các dịch vụ 4 1.1.1. Mobile Phone Family 4 1.2.2. The flexible Mobile Phone 8 1.2. Công nghệ mạng không dây và kiến trúc 10 1.2.1. Hệ thống truyền thông Cellular 10 1.2.2. Hệ thống truyền thông ShortRange 12 1.3. Triển khai ứng dụng di dộng (Mobile Application Deployment) 16 Chương 2: Lập trình ứng dụng trên di động với J2me 18 2.1. Giới thiệu 18 2.1.1. Lịch sử ra đời và phát triển của J2me 18 2.1.2. Kiến trúc phân tầng của J2me 19 2.2. Phát triển ứng dụng điện thoại di động bằng J2me 22 2.2.1. Cấu hình thiết bị kết nối có giới hạn CLDC 22 2.2.2. Hiện trạng thiết bị thông tin di động MIDP 23 2.2.3. Ứng dụng MIDlet 24 2.3. Môi trường phát triển 25 2.3.1. Java Development Kit 25 2.3.2. NetBeans 25 2.3.3. Tạo một ứng dụng MIDP với Netbean 27 2.4. MIDlet và màn hình 33 2.4.1. Tạo ra một đối tượng MIDlet 33 2.4.2. Vòng đời của một MIDlet 34 2.4.3. Đối tượng Display 34 2.5. Giao diện người dùng cấp cao 36 2.5.1. Đối tượng Dislayable và Screen 36 2.5.2. Thành phần Form và Item 37 2.5.3. Thành phần List, TextBox, Alert, Ticket 55 2.5.4. Xử lý sự kiện 65 2.6. Giao diện người dùng cấp thấp 95 2.6.1. Các hàm API mức thấp 95 2.6.2. Lớp Canvas 96 2.6.3. Lớp Graphics 108 2.7. Record Manager System – hệ thống quản lý vùng bản ghi 127 2.7.1. RecordStore vùng bản ghi 127 2.7.2. Các vấn đề liên quan đến RMS 129 2.7.3. Các hàm API trong RMS 130 2.7.4. Duyệt Record với RecordEnumeration 137 2.7.5. Sắp xếp các record với interface RecordComparator 139 2.7.6. Tìm kiếm với RecordFilter 143 Chương 3: Kết nối Internet với J2me 150 3.1. Khung kết nối chung GCF 150 3.2. Các giao thức được hỗ trợ trong GCF 151 3.3. Hỗ trợ giao thức HTTP trong MIDP 153 3.3.1. Sơ lược về giao thức HTTP 153 3.3.2. Các hàm API HttpConnection 158 Chương 4: Tạo Server bằng công nghệ Servlet của Java 170 4.1. Chương trình Servlet 170 4.2. Trình chủ Tomcat 170 4.3. Cấu hình đăng ký Servlet với Tomcat 171 4.3.1. Cài đặt tình chủ Tomcat 171 4.3.2. Cấu hình đăng ký Servlet với Tomcat 173 4.4. Vòng đời của một Servlet 180 4.5. Các hàm API trong Servlet 182 4.6. Sử dụng HttpServlet 183 Chương 5: Kết nối cơ sở dữ liệu với Java 191 5.1. Cơ chế ODBC và JDBC 191 5.1.1. Cơ chế ODBC 191 5.1.2. Cơ chế JDBC 194 5.2. Kết nối cơ sở dữ liệu với JDBC 197 5.2.1. Cài đặt Trình điều khiển 197 5.2.2. Tạo cơ sở dữ liệu 199 5.2.3. Kết nối tới cơ sở dữ liệu với JDBC 199 5.2.4. Truy vấn dữ liệu 201 5.2.5. Trích xuất dữ liệu 202 5.2.6. Xử lý các lệnh SQL INSERTUPDATEDELETE 203 5.2.7. Ví dụ về kết nối tới cơ sở dữ liệu 204 5.2.8. Sử dụng đối tượng PreparedStatement 208 5.2.9. Sử dụng chuyển tác 210
KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN ĐIỆN TỬ - VIỄN THƠNG \ VŨ THÀNH VINH ĐỒN NGỌC PHƯƠNG BÀI GIẢNG: LẬP TRÌNH ỨNG DỤNG TRÊN ĐIỆN THOẠI DI ĐỘNG TẬP BÀI GIẢNG (Lưu hành nội bộ) THÁI NGUYÊN THÁNG 08/NĂM 2010 Chương 1: Giới thiệu lập trình cho điện thoại di động 1.1 Sự tiến hóa điện thoại di động, mạng dịch vụ 1.1.1 Mobile Phone Family 1.2.2 The flexible Mobile Phone 1.2 Công nghệ mạng không dây kiến trúc 10 1.2.1 Hệ thống truyền thông Cellular 10 1.2.2 Hệ thống truyền thông Short-Range 12 1.3 Triển khai ứng dụng di dộng (Mobile Application Deployment) 16 Chương 2: Lập trình ứng dụng di động với J2me 18 2.1 Giới thiệu 18 2.1.1 Lịch sử đời phát triển J2me 18 2.1.2 Kiến trúc phân tầng J2me 19 2.2 Phát triển ứng dụng điện thoại di động J2me 22 2.2.1 Cấu hình thiết bị kết nối có giới hạn CLDC 22 2.2.2 Hiện trạng thiết bị thông tin di động MIDP 23 2.2.3 Ứng dụng MIDlet 24 2.3 Môi trường phát triển 25 2.3.1 Java Development Kit 25 2.3.2 NetBeans 25 2.3.3 Tạo ứng dụng MIDP với Netbean 27 2.4 MIDlet hình 33 2.4.1 Tạo đối tượng MIDlet 33 2.4.2 Vòng đời MIDlet 34 2.4.3 Đối tượng Display .34 2.5 Giao diện người dùng cấp cao 36 2.5.1 Đối tượng Dislayable Screen 36 2.5.2 Thành phần Form Item 37 2.5.3 Thành phần List, TextBox, Alert, Ticket .55 2.5.4 Xử lý kiện .65 2.6 Giao diện người dùng cấp thấp 95 2.6.1 Các hàm API mức thấp 95 2.6.2 Lớp Canvas 96 2.6.3 Lớp Graphics .108 2.7 Record Manager System – hệ thống quản lý vùng ghi .127 2.7.1 RecordStore - vùng ghi .127 2.7.2 Các vấn đề liên quan đến RMS 129 2.7.3 Các hàm API RMS 130 2.7.4 Duyệt Record với RecordEnumeration .137 2.7.5 Sắp xếp record với interface RecordComparator 139 2.7.6 Tìm kiếm với RecordFilter 143 Chương 3: Kết nối Internet với J2me 150 3.1 Khung kết nối chung GCF .150 3.2 Các giao thức hỗ trợ GCF 151 3.3 Hỗ trợ giao thức HTTP MIDP 153 3.3.1 Sơ lược giao thức HTTP .153 3.3.2 Các hàm API HttpConnection 158 Chương 4: Tạo Server công nghệ Servlet Java 170 4.1 Chương trình Servlet 170 4.2 Trình chủ Tomcat .170 4.3 Cấu hình đăng ký Servlet với Tomcat 171 4.3.1 Cài đặt tình chủ Tomcat .171 4.3.2 Cấu hình đăng ký Servlet với Tomcat .173 4.4 Vòng đời Servlet 180 4.5 Các hàm API Servlet .182 4.6 Sử dụng HttpServlet 183 Chương 5: Kết nối sở liệu với Java 191 5.1 Cơ chế ODBC JDBC 191 5.1.1 Cơ chế ODBC 191 5.1.2 Cơ chế JDBC .194 5.2 Kết nối sở liệu với JDBC .197 5.2.1 Cài đặt Trình điều khiển 197 5.2.2 Tạo sở liệu .199 5.2.3 Kết nối tới sở liệu với JDBC 199 5.2.4 Truy vấn liệu 201 5.2.5 Trích xuất liệu .202 5.2.6 Xử lý lệnh SQL INSERT/UPDATE/DELETE 203 5.2.7 Ví dụ kết nối tới sở liệu 204 5.2.8 Sử dụng đối tượng PreparedStatement 208 5.2.9 Sử dụng chuyển tác 210 Chương 1: Giới thiệu lập trình cho điện thoại di động 1.1 Sự tiến hóa điện thoại di động, mạng dịch vụ 1.1.1 Mobile Phone Family Điện thoại di động gọi với tên gọi ứng dụng quan trọng cho phép người dùng di chuyển thực gọi Trong kiến trúc mạng di động, trạm sở (base station) nhân tố quan trọng, trạm làm nhiệm vụ kết nối với điện thoại di động, đảm bảo tồn cho mạng di động, cho phép mạng di động kết nối với thành phần truyền thơng hữu tuyến khác Bên cạnh đó, trạm sở mạng xương sống cho phép người dùng vùng cell khác truyền thơng với Mạng di động trải qua nhiều hệ, hệ 1G, hệ thống truyền tín hiệu tương tự (analog), hệ không cung cấp nhiều dịch vụ, chủ yếu dịch vụ âm Thế hệ thứ hai 2G, chuyển đổi từ việc sử dụng tín hiệu analog sang tín hiệu số, từ thêm vào nhiều dịch vụ SMS trao đổi liệu với mạng Internet, thay đổi quan trọng 2G so với 1G phân chia nhà mạng nhà cung cấp dịch vụ Trước nhà cung cấp mạng người độc quyền, họ người cung cấp mạng di động người định dịch vụ cung cấp máy di động người dùng, sau mạng 2G đời có phân chia nhà cung cấp mạng nhà cung cấp dịch vụ, thị trường di động chia làm bốn thành phần chính: Nhà cung cấp mạng, nhà cung cấp dịch vụ, người sử dụng nhà sản xuất điện thoại di động Hình 1.1: Nhà cung cấp dịch vụ, người sử dụng nhà sản xuất điện thoại di động thị trường di động Giữa thành viên mạng di động có nhiều buộc lẫn nhau, quan trọng mối quan hệ nhà cung cấp mạng nhà sản xuất điện thoại di động Để thu hút khách hàng, nhà mạng thỏa thuận với nhà sản xuất điện thoại di động, để điện thoại di động bán với số lượng lớn có nhiều người sử dụng mạng điện thoại di động hơn, mặt khác nhà mạng đưa loạt dịch vụ sẵn có cho điện thoại di động Xa nữa, nhà cung cấp mạng điều khiển việc dịch vụ qua mạng họ làm cho nhà cung cấp dịch vụ phải phụ thuộc vào định họ Sự độc quyền nhà cung cấp mạng bị suy giảm với công nghệ không dây WLAN Bluetooth Các dạng truyền thông cho phép tạo kiểu dịch vụ mà không cần phải phụ thuộc nhiều vào nhà cung cấp mạng Tuy nhiên, vấn đề lợi nhuận, phát triển tự dạng truyền thông bị hạn chế nhà sản xuất điện thoại di động Nhà cung cấp dịch vụ dường tự lập trình để tạo sản phẩm dịch vụ mới, nhiên, nhiều việc tạo ứng dụng điện thoại di động lại động chạm tới lợi ích nhà cung cấp mạng, linh hoạt điện thoại di động lại bị kìm chế, ví dụ hệ thống VoIP truyền theo kiểu bán song cơng, hay kết hợp giao thức IP với module GPRS, IP thơng qua Bluetooth hay WLAN khó hỗ trợ hay khó sử dụng vài dòng điện thoại, hạn chế không ngăn việc tạo dịch vụ thú vị, vấn đề thời gian Thế hệ mạng di động 3G 3G công nghệ truyền thông hệ thứ ba, cho phép truyền liệu thoại liệu thoại (tải liệu, gửi email, tin nhắn nhanh SMS, hình ảnh,…) Hệ thống 3G yêu cầu mạng truy cập radio hoàn toàn khác so với hệ thống 2G Trong dịch vụ 3G, gọi video thường mô tả dịch vụ trọng tâm phát triển Do chi phí cho quyền tần số phải trang trải nhiều năm trước đạt tới thu nhập 3G đem lại, nên việc xây dựng mạng 3G đòi hỏi khối lượng đầu tư khổng lồ Cũng nhiều nhà cung cấp dịch vụ viễn thông rơi vào khó khăn tài chính, khiến cho việc triển khai 3G nhiều nước bị chậm trễ, ngoại trừ Nhật Bản Hàn Quốc – nước tạm bỏ qua yêu cầu quyền tần số, mà đặt ưu tiên cao việc phát triển hạ tầng công nghệ thông tin – viễn thông quốc gia Nhật Bản nước đưa 3G vào khai thác thương mại cách rộng rãi Năm 2005, khoảng 40% thuê bao Nhật Bản thuê bao 3G, khiến cho mạng 2G dần biến nước Sự thành công 3G Nhật Bản điện thoại video ứng dụng hủy diệt (killer application) thực tế, việc sử dụng điện thoại video thời gian thực chiếm phần nhỏ dịch vụ 3G Mặt khác, việc tải tệp âm nhạc lại sử dụng nhiều nhất, giới trẻ Sự phát triển 3G mở nhiều triển vọng việc xây dựng dịch vụ cho nhà phát triển phần mềm, nhà cung cấp dịch vụ, nhiên nhiều dự án bị đổ vỡ người sử dụng họ mong muốn gì, cần phải phân tích cẩn thận trước tiến hành dự án phần mềm cho điện thoại di động Ứng dụng điện thoại di động chia làm hai loại: Dịch vụ cá nhân dịch vụ truyền thơng Hình 1.2: Các loại hình dịch vụ dành cho điện thoại di động Dịch vụ cá nhân tất dịch vụ sử dụng khách hàng điện thoại di động với giới hạn hay không tương tác với khách hàng khác Dịch vụ truyền thơng ngược lại, dịch vụ tạo tương tác người sử dụng Dịch vụ cá nhân bao gồm dịch vụ là: lịch, máy ảnh, tải logo, nhạc điện thoại di động hay chơi trò chơi chơi rắn, bóng bàn Cả dịch vụ cá nhân lẫn dịch vụ truyền thông chia làm hai loại dịch vụ có khơng có hỗ trợ mạng khơng dây Mạng khơng dây hỗ trợ chuẩn kết nối GSM, GPRS, EDGE, 3G, bluetooth, hay WLAN Như hình trên, dịch vụ có màu cam dịch vụ có sẵn hầu hết điện thoại di động, dịch vụ màu xanh da trời dịch vụ cài đặt thêm điện thoại di động, cuối dịch vụ màu xanh cây, dịch vụ tương lai Dịch vụ truyền thông với hỗ trợ mạng không dây hứa hẹn tạo nhiều điều thú vị, người ln sống tương tác với người khác, dịch vụ phát triển SMS, dịch vụ thoại video, tải WEB, xem phim trực tuyến trò chơi tương tác hướng phát triển đầy triển vọng cho nhà cung cấp dịch vụ Ngoài tương lai, mạng 4G 5G phát triển, lại có thêm nhiều loại dịch vụ dịch vụ peer to peer, dịch vụ truyền thông ngang hàng, dịch vụ sensor Điều cho thấy điện thoại di động mạng di động mảnh đất màu mỡ cho lập trình viên 1.2.2 The flexible Mobile Phone Điện thoại di động ngày trở nên linh hoạt mắt nhà phát triển ứng dụng, thông qua ngôn ngữ lập trình, với ngơn ngữ tiên phong Java với phiên nhỏ gọn J2me, điện thoại di động trở thành mơi trường lập trình hấp dẫn lập trình viên Hình 1.3: Kiến trúc điện thoại lập trình Nhìn vào hình ta thấy ứng dụng di động (như chương trình Java) chạy tầng ứng dụng application suite, khung giao diện người dùng user interface framework cung cấp tất chức cho phép ta điều khiển điện thoại di động Các nhà sản xuất điện thoại di động thường truy nhập vào tảng họ (với vài hạn chế) cách sử dụng lõi trình điều khiển phần cứng kernel and hardware drivers hệ điều hành Symbian để truy nhập vào tảng phần cứng Gần thứ thuộc phần mềm truy cập được, có phần tĩnh thay đổi điện thoại tảng phần cứng Hình 1.4: Giao diện người dùng, giao diện kết nối tài ngun có sẵn điện thoại di động Ngồi khả lập trình được, điện thoại di động có nhiều khả chức khác, nhóm đặc tính điện thoại di động thành ba nhóm giao diện người dùng user interface, giao diện kết nối communication interface, tài nguyên sẵn có buit-in resources Giao diện người dùng bao gồm loa, microphone, camera, hình, cảm ứng, bàn phím Tài ngun có sẵn bao gồm pin, xử lý trung tâm nhớ Chúng ta đặc biệt quan tâm tới nhóm thứ ba nhóm giao diện kết nối, giao diện kết nối thường bao gồm khả kết nối celular short-range Thay việc sở hữu điện thoại thơng minh với đầy đủ chức chất lượng tốt, nên tìm hiểu cách sử dụng chia sẻ cách thông minh khả điện thoại di động Thực vậy, khác biệt thiết kế chủng loại điện thoại di động tạo nhiều tính đặc biệt, từ điện thoại đơn giản với khả thoại trở thành thiết bị đầu cuối với âm nhạc hình ảnh sống động Cơng nghệ mạng khơng dây cho phép làm điều Những nhà phát triển ứng dụng bắt đầu nhìn nhận điện thoại tập hợp khả gộp lại mục đích Tuy nhiên điện thoại di động khơng bị giới hạn kết hợp thành phần phần cứng Thậm chí phần mềm sử dụng cách linh Hình 5.2: Thêm thư viện vào dự án netbeans Để chương trình Java dự án bạn sử dụng Driver kết nối đến sở liệu 5.2.2 Tạo sở liệu Trước tiên, để thao tác với liệu, cần có sở liệu bảng Để tiện cho ví dụ chương này, bạn tạo sở liệu với tên “db” với tài khoản admin có username “sa” password “sa” Và tạo bảng “sinhvien” có cấu trúc sau: Hình 5.3: Bảng sinh viên sở liệu db 5.2.3 Kết nối tới sở liệu với JDBC Để làm việc với liệu CSDL, chương trình Java (và chương trình viết ngơn ngữ khác) phải tuân theo bước sau: 200 Thực kết nối với CSDL: Chương trình Java gọi phương thức getConnection() để nhận đối tượng Connection Sau thực lệnh: Các chương trình Java thực lệnh CSDL thông qua đối tượng Statement Các câu lệnh SQL thực tức thơng qua đối tượng Statement, câu lệnh biên dịch trước (đối tượng PreparedStatement) lệnh gọi thủ tục cài sẵn (stored Produced) CSDL (đối tượng CallableStatement) Các câu lệnh SQL thực thơng qua phương thức excuteQuery() – kết đối tượng ResultSet, hay phương thức excuteUpdate() – kết số nguyên cho biết tổng dòng (records) liệu chịu tác dụng câu lệnh vừa thực (thường câu lệnh sửa chữa số liệu (update hay delete)) Trong trường hợp có sử dụng trình quản lý transaction, phương thức rollback() dùng để phục hồi trạng thái trước hay commit() để xác nhận việc thực lệnh Để chấm dứt cần xóa kết nối, xóa đối tượng để giải phóng tài nguyên hệ thống 5.2.3.1 Thiết lập kết nối a) Nạp trình điều khiển Bước để tạo kết nối ứng dụng Java sở liệu đăng kí JDBC driver với máy ảo Java (JVM) mà ứng dụng Java chạy Đặc tả JDBC JDBC driver xem tự đăng kí với đối tượng DriverManager cách tự động chúng nạp vào JVM Ví dụ : static { java.sql.DriverManager.registerDriver(new com.persistentjava.JdbcDriver()) ; 201 } Việc đăng kí driver đơn giản việc nạp lớp driver vào JVM Chúng ta làm điều số cách khác Một cách thơng qua: ClassLoader Class.forName(com.persistentjava.JdbcDriver) ; Ví dụ để đăng kí trình điều khiển jTDS ta làm sau: try{ Class.forName(“net.sourceforge.jtds.jdbc.Driver”).newInstance (); } catch (Exception e){ } b) Tạo kết nối Bước sau đăng kí JDBC Driver thực kết nối Tồn cơng đoạn minh họa qua dòng mã sau: Connection conn; conn = DriverManager.getConnection(url, “myLogin”, “myPassword”); Đoạn mã tường minh, url địa máy chủ nơi chứa sở liệu, myLogin myPassword tên tài khoản password để đăng nhập vào hệ quản trị sở liệu Phương thức getConnection() gọi để thực kết nối thực đến phần mềm máy chủ sở liệu Lớp DriverManager tạo đối tượng Connection bạn gọi phương thức getConnection() Để kết nối tới sở liệu “db” SQL Server 2000 với jTDS driver ta cần thiết lập chuỗi url sau: jdbc:jtds:sqlserver://localhost:1433/db Ví dụ sau giúp bạn tạo kết nối hoàn chỉnh: import java.sql.*; import java.util.*; public class Connect{ Connection getConnect(String driver,String url,String user,String pass){ Connection conn=null; 202 try{ Class.forName(driver).newInstance(); conn=DriverManager.getConnection(url,user,pass); System.out.println("thanh cong"); } catch(Exception e){ System.out.println("ket noi khong cong"); System.out.println(e.getMessage()+e.toString()); } return conn; } } 5.2.4 Truy vấn liệu Tiếp theo, bước quan trọng trích rút liệu bảng sở liệu Chúng ta định nghĩa câu truy vấn SQL sau: String sqlQuery="SELECT * FROM tên_bảng"; Câu truy vấn chọn tất liệu cột có bảng Nếu muốn truyền số cột bạn định tường minh lệnh SELECT sau: String sqlQuery="SELECT tên_cột1,tên_cột2,tên_cột3 FROM tên_bảng"; Để yêu cầu JDBC truy vấn liệu bạn dựa vào đối tượng Statement Đối tượng dùng để thực thi câu lệnh SQL Riêng lệnh SQL SELECT truy vấn thành công, Statement trả kết tập liệu truy vấn có kiểu ResultSet Dưới đoạn mã thực thi câu truy vấn: Statement stmt = null; ResultSet rs = null; String sqlQuery="câu_lệnh_truy_vấn"; stmt = con.createStatement(); rs = stmt.excuteQuery(sqlQuery); 203 5.2.5 Trích xuất liệu Đối với lệnh SELECT sau nhận kết trả tập ResultSet, bạn gọi phương thức next() để đến mẩu tin in kết cột Phương thức next() trả false đến cuối tập liệu Đoạn mã thông dụng để lấy tất mẩu tin ResultSet vòng lặp while có dạng sau: while (rs.next()) { //In liệu cột thứ mẩu tin System.out.println(rs.getString(1)); //In liệu cột thứ hai mẩu tin System.out.println(rs.getString(2)); } Các cột tập liệu ResultSet đánh số thứ tự từ Ví dụ câu lệnh SELECT bạn có nội dung: String sqlQuery="SELECT tên_cột1,tên_cột2,tên_cột3 FROM tên_bảng"; Kết rs.getString(1) trả liệu cột 1, rs.getString(2) trả liệu cột 2, rs.getString(3) trả liệu cột dạng chuỗi tiếp diễn Nếu khơng biết trước có cột kết trả tập liệu ResultSet (ví dụ trường hợp câu lệnh SELECT * FROM tên_bảng) bạn có thơng tin số cột kiểu liệu cột cách gọi phương thức getMetaData() Phương thức đối tượng ResultSet trả thông tin đặc tả kiểu trường Ví dụ để in tiêu đề cho tất cột liệu, cách tổng quát bạn sử dụng đoạn mã sau: //Lấy đối tượng ResultSetMetaData ResultSetMetaData srmd = rs.getMetaData(); //Đếm số cột liệu có int columnCount = rsmd.getColumnCount(); //In tiêu đề cột 204 for (int i = 0; i < column; i++) { System.out.println(rsmd.getColumnLabel(i + 1)); } Và để duyệt in tất liệu cột ResultSet, bạn thực tổng quát sau: //Duyệt mẩu tin while (rs.next()) { //In liệu tất cột mẩu tin for (int i = 0; i < columnCount; i++) { System.out.println(rs.getString(i + 1)) } } 5.2.6 Xử lý lệnh SQL INSERT/UPDATE/DELETE Ngoài lệnh SQL SELECT thường sử dụng ra, lệnh thay đổi liệu INSERT (tạo mẩu tin), UPDATE (cập nhật mẩu tin) DELETE (xóa bỏ mẩu tin) bạn gặp trình phát triển ứng dụng Thực thi lệnh tương tự thực thi lệnh SELECT Chúng ta dựa vào đối tượng Statement Tuy nhiên khác với SELECT, lệnh SQL INSERT/ UPDATE/ DELETE sau thực thi không trả kết ResultSet Thực tế bạn không cần nhận kết trả từ lệnh này, phản ánh thay đổi bảng liệu mà lệnh tác động Chúng ta sử dụng đoạn mã sau để thực lệnh INSERT/UPDATE/DELETE: int i; Statement st=con.createStatement(); i=Stmt.exexuteUpdate(“câu lệnh SQL”); Phương thức exexuteUpdate có giá trị trả số nguyên, số mô tả số record sở liệu bị tác động câu lệnh SQL phương thức exexuteUpdate(“câu lệnh SQL”) 205 5.2.7 Ví dụ kết nối tới sở liệu Trong phần tạo chương trình Java cho phép truy xuất cập nhập thông tin vào sở liệu, thao tác khác cài đặt phương thức khác để dễ quản lý Việc kết nối tới sở liệu trao cho lớp Connect thiết kế mục 5.2.3.1b: import java.sql.*; import java.util.Date; import java.text.SimpleDateFormat; class AcessDB{ protected Connection con; private Statement st; private ResultSet rs; private ResultSetMetaData data; private int num,count; //phương thức khởi dựng protected AcessDB(Connection conn){ this.con=conn; } //phương thức thực truy vấn select private void getInfor(String sql){ try{ st=con.createStatement(); rs=st.executeQuery(sql); data=rs.getMetaData(); num=data.getColumnCount(); } catch(Exception e){ System.out.println("can't get infor"); 206 } } //Phương thức kiểm tra câu lệnh truy vấn có kết hay khơng protected boolean check(String sql){ if(select0(sql).length()>0) return true; else return false; } //lấy liệu từ câu lệnh select, bao gồm tên bảng protected String select(String sql){ getInfor(sql); String str=""; try{ for(int i=0;i