1. Trang chủ
  2. » Công Nghệ Thông Tin

Tong hop cac bai hoc ve lap trinh JDBC

66 330 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 1,35 MB

Nội dung

Tổng hợp các bài học về lập trình Java JDBC, hướng dẫn kết nối cơ sở dữ liệu JDBC và thao tác trong JDBC Tổng hợp các bài học về lập trình Java JDBC, hướng dẫn kết nối cơ sở dữ liệu JDBC và thao tác trong JDBC

Blog: Tieudao.info Bài 1: Giới thiệu JDBCJDBC Introduction JDBC gì? JDBC viết tắt Java Database Connectivity, cho phép ứng dụng Java kết nối với nhiều sở liệu cài đặt hệ quản trị sở liệu MySQL, SQL Server, Oracle, PostgreSQL, … JDBC hỗ trợ chức tạo kết nối đến sở liệu, tạo câu lệnh SQL (Structured Query Language), thực thi câu lệnh SQL, xem thay đổi liệu Kiến trúc JDBC (JDBC Architecture) Blog: Tieudao.info Các thành phần JDBC thông dụng DriverManager: Lớp quản lý danh sách trình điều khiển sở liệu (database drivers) Lựa chọn trình điều khiển phù hợp từ yêu cầu ứng dụng java sử dụng giao thức giao tiếp Connection: Đại diện cho kết nối đến sở liệu Statement: Đối tượng dùng để thực thi câu lệnh SQL câu lệnh thêm liệu (insert), câu lệnh thay đổi liệu (update), câu lệnh xoá liệu (delete), câu lệnh xem liệu (select), … ResultSet: Đối tượng chứa liệu sau thực thi câu lệnh xem liệu Sử dụng đối tượng để duyệt qua tất liệu chứa ResultSet SQLException: Lớp xử lý tất ngoại lệ phát sinh trình ứng dụng java thao tác với sở liệu Phân loại (JDBC Drivers Types) Loại (Type 1): Sử dụng cầu nối ODBC – Open Database Connectivity (JDBC – ODBC Bridge Driver) Sử dụng ODBC, yêu cầu bạn phải cấu hình hệ thống DSN (Data Source Name) đại diện cho sở liệu muốn sử dụng Blog: Tieudao.info Loại 2: JDBC-Native API Blog: Tieudao.info Loại 3: JDBC kết nối thông qua ứng dụng mạng trung gian Blog: Tieudao.info Loại 4: JDBC kết nối trực tiếp với trình điều khiển sở liệu (100% Pure Java) Kết luận trình điều khiển nên sử dụng (Which driver should be used) Nếu bạn truy cập vào loại sở liệu MySQL, SQL Server, PostgreSQL, Oracle, … loại nên sử dụng Nếu ứng dụng Java bạn truy cập nhiều loại sở liệu lúc loại nên sử dụng Loại sử dụng số tình mà loại loại khơng có sẵn cho sở liệu bạn Loại thường sử dụng với mục đích thử nghiệm Giới thiệu số câu lệnh SQL thông dụng Tạo sở liệu CREATE DATABASE DATABASE_NAME; Xoá sở liệu DROP DATABASE DATABASE_NAME; Tạo bảng CREATE TABLE table_name ( column_name column_data_type, Blog: Tieudao.info column_name column_data_type, column_name column_data_type ); Xoá bảng DROP TABLE table_name; Thêm liệu INSERT INTO table_name VALUES (columnValue1, columnValue2, ); Xoá liệu DELETE FROM table_name WHERE conditions; Thay đổi liệu UPDATE table_name SET column_name = value, column_name = value, WHERE conditions; Xem liệu SELECT column_name, column_name, FROM table_name WHERE conditions; Tổng kết học giới thiệu JDBCJDBC gì?  Kiến trúc JDBCCác loại JDBCCác câu lệnh SQL thường dùng Blog: Tieudao.info Cài đặt JDBC Driver – JDBC Environment Setup (Bài 2) Cài đặt jdbc driver Để bắt đầu phát triển ứng dụng với JDBC, phải cài đặt môi trường bao gồm bước cài đặt Java, cài đặt hệ quản trị sở liệu, tạo sở liệu, tạo bảng, … Cài đặt Java Nếu mơi trường lập trình máy bạn chưa cài dặt JDK bạn phải tải JDK từ Oracle cài đặt JDK Chúng ta bỏ qua bước này, máy bạn cài đặt JDK trước Hướng dẫn kiểm tra máy tính bạn cài đăt JDK chưa? Sử dụng CMD (Command) gõ lệnh java -version sau nhấn Enter để xem kết Cài đặt hệ quản trị sở liệu Ứng dụng Java làm việc với nhiều hệ quản trị sở liệu khác MySQL, PostgreSQL, SQL Server, Oracle, …Chúng ta lựa chọn hệ quản trị tuỳ thuộc vào yêu cầu thực tế dự án Trong phạm vi môn học này, cài đặt sử dụng hệ quản trị SQL Server Microsoft Tạo sở liệu Chúng ta tạo sở liệu tên EMPDB sử dụng câu lệnh sau CREATE DATABASE EMPDB Cách tạo sở liệu với SQL Server  Nhập câu lệnh chọn Execute (Hoặc nhấn F5) Blog: Tieudao.info  Sau tạo thành công Tạo bảng Tạo bảng employee thuộc sở liệu EMPDB sử dụng câu lệnh sau use EMPDB create table Employees ( id int not null primary key ,first nvarchar (255) Blog: Tieudao.info ,last nvarchar (255) ,age int not null ) Lưu ý cửa sổ viết nhiều câu lệnh câu lệnh muốn thực thi, phải chọn câu lệnh Tổng kết cài đặt jdbc driver  Cài đặt JDK  Cài đặt Microsoft SQL Server  Tạo sở liệu  Tạo bảng Blog: Tieudao.info Kết nối SQL Server với java (Bài 3) Kết nối sql server với java (Connect to Microsoft SQL Server via JDBC) hướng dẫn bạn làm để có trình điều khiển JDBC (JDBC Driver) viết mã (code) cho việc kết nối đến sở liệu cài đặt Microsoft SQL Server từ ứng dụng Java Nội dung học bao gồm tải JDBC Driver, chuỗi kết nối cho Microsoft SQL Server (sql server jdbc connection string), thiết lập kết nối (establish connection) chương trình mẫu Download Microsoft JDBC driver Tải JDBC Driver thêm sqljdbc42.jar vào Java project sử dụng NetBeans theo bước sau Chuột phải Libraries -> Chọn Add JAR/Folder… Chỉ định thư mục chứa JDBC Driver chọn tập tin sqljdbc42.jar -> chọn Open 10 Blog: Tieudao.info crs.updateDatatype(int columnIndex, Datatype x); // crs.insertRow(); crs.moveToCurrentRow(); crs.acceptChanges(); //submit Trong crs đối tượng CachedRowSet, columnIndex 1, Datatype kiểu liệu CachedRowSet – Cập nhật liệu // Chỉ định cột liệu cập nhật crs.updateDatatype(int columnIndex, Datatype x); // crs.updateRow(); crs.acceptChanges(); //submit CachedRowSet – Xoá liệu //Xoá liệu dòng crs.deleteRow(); crs.acceptChanges(); CachedRowSet – Xem liệu CachedRowSet cho phép duyệt liệu với thao tác First (bản ghi đầu tiên), Next (bản ghi kế tiếp), Previous (bản ghi trước) Last (bản ghi cuối cùng) Bên phương thức tương ứng Hiển thị ghi crs.beforeFirst(); if(crs.next()) { crs.getDatatype(String columnLabel); } Hiển thị ghi (Sử dụng phương thức crs.isLast() để kiểm tra xem ghi cuối chưa Nếu trả true ghi cuối cùng) 52 Blog: Tieudao.info if(crs.next()) { crs.getDatatype(String columnLabel); } Hiển thị ghi trước (Sử dụng phương thức crs.isFirst() để kiểm tra xem ghi chưa Nếu trả true đầu ghi đầu tiên) if(crs.previous()) { crs.getDatatype(String columnLabel); } Hiển thị ghi cuối crs.afterLast(); if(crs.previous()) { crs.getDatatype(String columnLabel); } Jdbc rowset java – Bài thực hành số Cho câu lệnh tạo sở liệu tạo bảng CREATE DATABASE [StudentDB] go use StudentDB go CREATE TABLE [dbo].[Class]( [Class_ID] [varchar](20) PRIMARY KEY, [Class_Name] [nvarchar](50) NULL, ) go CREATE TABLE [dbo].[Student]( [Student_ID] [varchar](20) PRIMARY KEY, [Student_Name] [nvarchar](100) NULL, 53 Blog: Tieudao.info [Sex] [nvarchar](10) NULL, [Class_ID] [varchar](20) NULL, ) Câu 1: Chương trình quản lý thông tin lớp học Thiết kế giao diện Viết xử lý Trường hợp focus “Class Name”, người dùng nhấn phím Enter để thực chức “Display” Khi người dùng chọn nút lệnh “Delete”, chương trình hiển thị thơng báo xác nhận xóa Trường hợp chọn “Yes”, chương trình kiểm tra xem lớp có sinh viên chưa Nếu lớp có sinh viên đăng ký học chương trình hiển thị thơng báo 54 Blog: Tieudao.info Khi chọn dòng JTable, chương trình hiển thị sỉ số sinh viên lớp “Number of students” Yêu cầu tạo procedure Một procedure kiểm tra xem lớp có sinh viên đăng ký học chưa procedure hiển thị sỉ số sinh viên lớp Câu 2: Chương trình xem, thêm, xố cập nhật sinh viên Viết xử lý Lần hiển thị đầu tiên: đối tượng ID, Name, Sex Class thao tác 55 Blog: Tieudao.info Khi người dùng chọn nút lệnh “First”: hiển thị thông tin đầu tiên, nút lệnh “Update”, “Delete”, “Next” “Last” trạng thái enable Nút lệnh “First” trạng thái Disable Hiển thị số record hành tổng số record có Khi người dùng chọn nút lệnh “Next”: hiển thị thông tin kế tiếp, nút lệnh “First”, “Previous” trạng thái enable Đồng thời kiểm tra record cuối thiết lập trang thái cho nút lệnh “Next” Last” disable 56 Blog: Tieudao.info Khi người dùng chọn nút lệnh “Previous”: hiển thị thơng tin trước đó, đồng thời kiểm tra record thiết lập trạng thái cho nút lệnh “First” “Previous” disable Khi người dùng chọn nút lệnh “Last”: hiển thị thông tin cuối cùng, nút lệnh “First”, “Previous” trạng thái Enable, nút lệnh “Last” trạng thái disable Khi người dùng chọn nút lệnh “Update”, cho phép nhập thông tin ID, Name chọn thông tin Sex, Class người dùng chọn nút lệnh “Save”, chương trình tiến hành cập nhật thơng tin Khi người dùng chọn nút lệnh “Insert”, cho phép người dùng nhập thông tin thêm vào sở liệu người dùng chọn nút “Save” 57 Blog: Tieudao.info JoinRowSet JoinRowSet sử dụng để kết nối nhiều RowSet database Sử dụng JoinRowSet tương tự việc kết nối bảng database phải thông qua điều kiện kết với mục đích truy vấn liệu từ nhiều bảng Ví dụ có bảng Class Students Hai bảng liên kết với thơng qua khố ngoại ClassID Trong trường hợp có RowSet, cho bảng Class cho bảng Students Bây thực kết nối RowSet sử dụng JoinRowSet để có thơng tin lớp sinh viên 58 Blog: Tieudao.info Tạo JoinRowSet JoinRowSet jrs = new JoinRowSetImpl(); Sử dụng phương thức addRowSet(Rowset, “Column name in database”) để kết nối RowSet dựa vào khoá ngoại (column) FilteredRowSet FilteredRowSet sử dụng để lấy tập giá trị từ RowSet dựa vào điều kiện lọc tương tự mệnh đề where câu lệnh Select FilteredRowSet frs = new FilteredRowSetImpl(); Jdbc rowset java – Ví dụ JoinRowSet package swing_pkg.sql.jdbcrowset; import com.sun.rowset.CachedRowSetImpl; import com.sun.rowset.JoinRowSetImpl; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Vector; import javax.sql.rowset.CachedRowSet; import javax.sql.rowset.JoinRowSet; import javax.swing.DefaultListModel; /** * * @author giasutinhoc.vn */ public class JoinRowSetConsoleExample { 59 Blog: Tieudao.info private CachedRowSet crClass, crStudent; private PreparedStatement ps; private Connection c; //Column name in database private static final String CLASS_ID = "class_id"; public JoinRowSetConsoleExample() { getClassInfo(); getStudentInfo(); } private String getStringUrl() { return "jdbc:sqlserver://localhost;databasename=StudentDB"; } private void getClassInfo() { try { String sql = "Select * from class"; crClass = new CachedRowSetImpl(); crClass.setUrl(getStringUrl()); crClass.setUsername("sa"); crClass.setPassword("sa"); crClass.setCommand(sql); crClass.execute(); } catch (Exception e) { e.printStackTrace(); } 60 Blog: Tieudao.info } private void getStudentInfo() { try { String sql = "Select * from student"; crStudent = new CachedRowSetImpl(); crStudent.setUrl(getStringUrl()); crStudent.setUsername("sa"); crStudent.setPassword("sa"); crStudent.setCommand(sql); crStudent.execute(); } catch (Exception e) { e.printStackTrace(); } } private void getStudentBaseClassId() { try { JoinRowSet jrs = new JoinRowSetImpl(); jrs.addRowSet(crClass, CLASS_ID); jrs.addRowSet(crStudent, CLASS_ID); while(jrs.next()) { System.out.print("ID: "+ jrs.getString("student_id")); System.out.print(", Name: " + jrs.getString("student_name")); System.out.print(", Sex:" + jrs.getString("sex")); System.out.println(", Class: " + jrs.getString("class_name")); } 61 Blog: Tieudao.info } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String args[]) { JoinRowSetConsoleExample jrsce = new JoinRowSetConsoleExample(); jrsce.getStudentBaseClassId(); } } Kết hiển thị Sử dụng FilteredRowSet Các bước thực Bước 1: Tạo class cài đặt giao diện Predicate package swing_pkg.sql.jdbcrowset; import java.sql.SQLException; import javax.sql.RowSet; import javax.sql.rowset.Predicate; /** * * @author giasutinhoc.vn */ public class ClassName implements Predicate { 62 Blog: Tieudao.info //Danh sách tham số dùng để filter private Datatype paramName; public ClassName(Danh sách tham số) { //Gán giá trị cho tham số } @Override public boolean evaluate(RowSet rs) { try { if(input your condition) return true; } catch (SQLException ex) { ex.printStackTrace(); } return false; } @Override public boolean evaluate(Object value, int column) throws SQLException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates } @Override public boolean evaluate(Object value, String columnName) throws SQLException { 63 Blog: Tieudao.info throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates } } Bước 2: Tạo đối tượng FilteredRowSet, thiết lập filter duyệt // Tạo đối tượng FilteredRowSet frs = new FilteredRowSetImpl(); // Thiết lập fiter frs.populate(jrs); ClassName cr = new ClassName(argument list for condition); frs.setFilter(cr); //Duyệt while (frs.next()) { // Lấy giá trị frs.getDatatype("columnName"); } Ví dụ sử dụng FilteredRowSet JoinRowSet jrs = new JoinRowSetImpl(); jrs.addRowSet(crClass, "class_id"); jrs.addRowSet(crStudent, "class_id"); //Lọc liệu******************* FilteredRowSet frs = new FilteredRowSetImpl(); frs.populate(jrs); ClassPredicateImpl cr = new ClassPredicateImpl(classId); frs.setFilter(cr); 64 Blog: Tieudao.info //Duyệt while (frs.next()) { System.out.println(frs.getString("student_id")); // } Bài thực hành số Câu 1: Cho giao diện chương trình hình bên Viết xử lý Class info: hiển thị tất thông tin bảng Class; Student info: hiển thị tất thông tin bảng Student; Display a list of students by class: hiển thị thông tin bảng Student bảng Class Gợi ý: Sử dụng CachedRowSet JoinRowSet Câu 2: Cho giao diện chương trình hình bên 65 Blog: Tieudao.info Viết xử lý: Hiển thị thông tin sinh viên dựa vào mã lớp (class_id) chọn list Gợi ý: Sử dụng FilteredRowSet 66 ... giới thiệu JDBC  JDBC gì?  Kiến trúc JDBC  Các loại JDBC  Các câu lệnh SQL thường dùng Blog: Tieudao.info Cài đặt JDBC Driver – JDBC Environment Setup (Bài 2) Cài đặt jdbc driver Để bắt đầu... JDBC Driver, chuỗi kết nối cho Microsoft SQL Server (sql server jdbc connection string), thiết lập kết nối (establish connection) chương trình mẫu Download Microsoft JDBC driver Tải JDBC Driver thêm... Server JDBC connection string Là chuỗi sử dụng để kết nối đến SQL Server Mỗi hệ quản trị sở liệu có chuỗi kết nối khác Sau chuỗi kết nối JDBC dành cho Microsoft SQL Server jdbc: sqlserver://[serverName[instanceName][:portNumber]][;property=value[;p

Ngày đăng: 12/12/2017, 09:31

TỪ KHÓA LIÊN QUAN

w