Lập trình cơ sở dữ liệu với java

     

JDBC là 1 trong API tiêu chuẩn chỉnh được dùng để làm kết nối với các cơ sở dữ liệu. Bài viết này đang hướng dẫn các bạn đang học tập lập trình cách thực hiện JDBC sang một ví dụ đơn giản: chế tạo ra một ứng dụng làm chủ sinh viên sử dụng ngôn từ Java, chúng ta xem chi tiết ở bên dưới nhé.

Bạn đang xem: Lập trình cơ sở dữ liệu với java

JDBC là gì?

Một cách đơn giản dễ dàng và ít phức hợp nhất, JDBC(Java Database Connectivity)là công cụ chuyển động như một driver giúp họ kết nối cơ sở tài liệu trong ứng dụng Java,giúp ứng dụng Java thực hiện kết nối và thao tác với cửa hàng dữ liệu. Nó cho phép ta tiến hành các thao tác truy xuất, update dữ liệu hoặc những thứ khác thông qua việc sử dụng các câu lệnh SQL.

*

Thành phần cơ bạn dạng phải cố gắng rõ

DriverManager: sử dụng để cai quản danh sách cácDriver(database drivers).Driver: dùng làm liên kết ứng dụng java với các đại lý dữ liệu.Connection:tất cả những thông tin liên lạc với cơ sở dữ liệu điều trải qua đối tượngConnection.Statement: yếu tố nàygói gọn một câu lệnh SQL nhằm gửi cho tới cơ sở tài liệu và thực hiện.ResultSet: sau khoản thời gian thực hiện Statement,ResultSetđại diện đến tập phù hợp các phiên bản ghi mang do tiến hành truy vấn.

*

Mô hình trực quan mối quan hệ, tính năng cũng như phương pháp hoạt động

Sử dụng JDBC như vậy nào

Config mang lại SQL Server

Để phần mềm (Java) của chúng ta có thể kết nối được với cơ sở dữ liệu, việc đầu tiên các bạn cần phải xác định vẻ ngoài kết nối với cổng liên kết cho database, ở chỗ này mình sử dụngDatabase SQL server (SQLJDBC) của Microsoft, cách chúng ta có thể tải về tại links bên dưới nội dung bài viết này. Ở lấy ví dụ này, chúng ta chỉ phải tạo database, mọi thông số như port các chúng ta có thể để khoác định (Port:1443) và bỏ qua bước này,hoặc các bạn đã nối tiếp sâu về SQL Server bao gồm thể tùy chỉnh lại config cho các instance của vps như hình dưới

*

Cài đặt cổng kết nối như trong hình vẽ, hãy lưu giữ số TCP Dynamic Ports, về sau sẽ cần sử dụng nhiều

*

Kích hoạt các Protocol như vào hình (nếu gặp gỡ lỗi)

Tạo database

Tiếp theo, bảo vệ bạn đã chế tạo ra một cơ sở tài liệu trên SQL Server, chăm chú khi tạo các bạn hãy ghi nhớ tên của database tương tự như tên của các đối tượng người dùng bạn tạo bên trong database này. Dưới là một database mẫu đơn giản dễ dàng mình đã chế tạo sẵn bởi SQL, các chúng ta có thể tải về làm việc cuối bài bác viết.

*

Cài đặt driver

Cuối cùng, hãy chắc chắn là rằngthư viện tinh chỉnh Database SQL vps (SQLJDBC) đã được cấp dưỡng Java project của các bạn, các bạn tải về thư viện ở bên dưới bài viết và làm cho như trong ảnh, vào trường hòa hợp project của các bạn đã có sẵn thư viện SQLJDBC thì nên bỏ qua bước này.

Xem thêm: Vùng Nước Nội Thủy Là Gì - Chủ Quyền Quốc Gia Đối Với Vùng Nội Thủy

*

Thêm tủ sách sqljdbc phiên bạn dạng mới nhất để có thể sử dụng các thành phần của JDBC (Đã được nêu sinh hoạt mục giới thiệu)

Lập trình ứng dụng thống trị sinh viên

*

DatabaseInfo: Lưu trữ tin tức cơ bạn dạng của database

StudentManager: Lưu trữ những hàm làm việc cơ bản để quản ngại lí những sinh viên trong cửa hàng dữ liệu

GUI: Giao diện giao diện của phần mềm

Validation (Chức năng phụ): Kiểm tra tài liệu để tránh lỗi xẩy ra trong cơ sở dữ liệu (trùng khóa chính, out of range, ...)

BƯỚC 1: Đầu tiên bọn họ tạo những thông tin cơ phiên bản như sau, chúng ta chú ý phần dbURL, tại phía trên hãy điền đúng port với tên database đã thiết lập ở phần 1 để rất có thể kết nối. Xem xét có hai loại đăng nhập vào SQL Server:SQL authentication Windows authentication, các bạn xem thêm 1 trong 2 bí quyết (khuyến khích dùng bí quyết 1).

public class DatabaseInfo public static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//localhost: databaseName= public static String dbURL = "jdbc:sqlserver://localhost:8888;databaseName=University";//Username cùng Password chừa trống, trong ứng dụng sẽ nhập sau public static String dbUser = ""; public static String dbPass = "";SQL authentication

public class DatabaseInfo public static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//localhost: databaseName= public static String dbURL = "jdbc:sqlserver://localhost:8888;databaseName=University;integratedSecurity=true";// Vẫn chừa trống, tuy vậy không dùng public static String dbUser = ""; public static String dbPass = "";Windows authentication

Lưu ý:SQL Server xác thực đăng nhập cùng với 2 cơ chế: SQL authenticationWindows authentication.

SQL authentication: bạn phải cung cấp tên đăng nhập với mật khẩu và cả hai đều được giữ trong SQL Server.Windows authentication:tài khoản hiện tại đang mong muốn đăng nhập vào Windows sẽ được dùng

Để khám phá kỹ rộng về các khái niệm bảo mật thông tin trong database, các chúng ta cũng có thể đón xem các blog về sau của mình. Ở ví dụ mặt dưới, phần mềm làm chủ sinh viên sẽ liên kết với hệ cơ sở tài liệu qua hình thứcSQL authentication.

BƯỚC 2: Khởi tạo kết nối, trả về một đối tượng người tiêu dùng Connection, hàm này các bạn cũng có thể bỏ ở bất kể nơi nào dễ dãi cho vấn đề gọi liên kết sau này

public Connection getConnect() throws ClassNotFoundException, SQLException Class.forName(DatabaseInfo.driverName);connection = DriverManager.getConnection(DatabaseInfo.dbURL, DatabaseInfo.dbUser, DatabaseInfo.dbPass);return connection; BƯỚC 3: Các hàm làm việc căn bạn dạng trong class StudentManagement

Lấy tổng thể sinh viên trong database

public Vector> getAll() throws ClassNotFoundException, SQLException Vector> data = new Vector();// kết nối databaseconnection = getConnect();// tạo thành câu lệnh SQL (Cách 1: sử dụng Statement)Statement stmt = connection.createStatement();ResultSet rs = stmt.executeQuery("Select * from Students");while (rs.next()) // Lấy dữ liệu từ ResultSet String Sno = rs.getString(1); String Sname = rs.getString(2); String Sgender = rs.getString(3); String Sclass = rs.getString(4); String Saddress = rs.getString(5); String Semail = rs.getString(6); // Ghi vào vector Vector temp = new Vector(); temp.add(Sno); temp.add(Sname); temp.add(Sgender); temp.add(Sclass); temp.add(Saddress); temp.add(Semail); // Thêm dữ liệu vào data vector bao gồm data.add(temp);return data; ​Thêm một sinh viên bắt đầu vào databasepublic void addNew(String Sno, String Sname, String Sgender, String Sclass, String Sadress, String Semail) throws ClassNotFoundException, SQLException // kết nối databaseconnection = getConnect();// tạo ra câu lệnh SQL (Cách 2: thực hiện PreparedStatement)String sql = "INSERT INTO Students(Sno,Sname,Sgender,Sclass,Sadress,Semail) VALUES(?,?,?,?,?,?)";PreparedStatement stmt = connection.prepareStatement(sql);stmt.setString(1, Sno);stmt.setString(2, Sname);stmt.setString(3, Sgender);stmt.setString(4, Sclass);stmt.setString(5, Sadress);stmt.setString(6, Semail);// thực hiện lệnh SQLstmt.executeUpdate();// Đóng kết nốiconnection.close(); ​Xóa một sinh viên khỏi databasepublic int delete(String Sno) throws SQLException, ClassNotFoundException int deleteStatus = 0;// liên kết databaseconnection = getConnect();// Xóa sinh viênString sql = "DELETE FROM STUDENTS WHERE Sno="" + Sno + """;Statement stm1 = connection.createStatement();deleteStatus = stm1.executeUpdate(sql);// Trả về hiệu quả int (có xóa thành công xuất sắc hay không)connection.close();return deleteStatus; ​Đây là các tác dụng chính bắt buộc phải có để sở hữu thể thống trị sinh viên, bên cạnh đó các chúng ta cũng có thể sáng tạo thêm các chức năng mới như: Tính điểm trung bình, rước sinh viên du lịch nhất, đem sinh viên theo ID, theo tên, ... Ở phía trên mình sẽ không đi thừa sâu vào phía dẫn, mình sẽ đa số hướng dẫn cách áp dụng JDBC hiệu quả nhất.BƯỚC 4: Tạo hình ảnh đồ họa bằng JFrame

Như nội dung bài viết trước, tại chỗ này mình không khuyên bảo sâu về cách chuyển động cũng như tạ JFrame, đây là các yếu tắc và chức năng chính trong phần mềm của mình, các bạn có thể tham khảo cùng tùy trở thành theo sở thích

*

scrollPane: chứa table, table này đó là danh sách sinh viên mang ra từ databaseupdateAndAdd: hỗ trợ giao diện nhằm điền thông tinbtnLoad,btnPrint: Các tác dụng cơ bản, sở hữu cơ sở tài liệu và in ra tệp PDF

Bước 5: Tạo đối tượng StudentManager để truy vấn các hàm tại bước 3, LOAD dữ liệu vào phần mềm

StudentManager manager = new StudentManager();Tạo đối tượng người tiêu dùng manager

public void actionPerformed(ActionEvent arg0) try // tạo giao diện cho những người dùng nhập username với password của databaseJPanel inputPane = new JPanel();inputPane.setLayout(new GridLayout(0, 2, 2, 2));JLabel label1 = new JLabel("Type database username: ");label1.setFont(new Font("Tahoma", Font.BOLD, 18));JLabel label2 = new JLabel("Type database password: ");label2.setFont(new Font("Tahoma", Font.BOLD, 18));// tạo thành nơi điền username với passwordJTextField userName = new JTextField();JTextField passWord = new JTextField();inputPane.add(label1);inputPane.add(userName);inputPane.add(label2);inputPane.add(passWord);if (JOptionPane.showConfirmDialog(contentPane, inputPane, "To connect database, please type infomation below !", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) else throw new Exception("Canceled by user");// Tải dữ liệu từ database vào phần mềmdata = manager.getAll();// xây đắp bảng tài liệu để hiển thịheader = new Vector();header.add("ID");header.add("Name");header.add("Gender");header.add("Class");header.add("Adress");header.add("Email");((DefaultTableModel) (table.getModel())).setDataVector(data, header);// Kích hoạt các công dụng Add, Delete, tắt phần thông báobtnAdd.setEnabled(true);btnDelete.setEnabled(true);infomationPanel.setVisible(false);// thông báo thành côngJOptionPane.showMessageDialog(contentPane, "Load sucess!"); catch (Exception e) JOptionPane.showMessageDialog(contentPane, "Load failure! Details: " + e); Action Listener cho nút LOAD

BƯỚC 6: ADD với DELETE bên trên phần mềm, đồng nghĩa tương quan với dữ liệu trên cửa hàng dữ liệu cũng trở thành thay đổi, bước này rất giản đơn sinh lỗi nếu các bạn không gồm một đối tượng người dùng Validation để kiểm tra tài liệu nhập vào, các bạn cũng có thể tham khảo code mặt dưới, mình có chú dẫn từng dòng rất dễ dàng hiểu.

protected void btnAddActionPerformed(ActionEvent arg0) try //Lấy dữ liệu nhập trên phần mềm String Sno = textField.getText(); String Sname = textField_1.getText(); String Sgender = getGender(); String Sclass = textField_2.getText(); String Sadress = textField_3.getText(); String Semail = textField_4.getText(); // Kiểm tra tài liệu nhập vào, bình chọn trùng khóa chủ yếu trong database if (manager.checkStudent(Sno)) throw new Exception("This student ID is already exits in database!"); if (!Validation.checkIdFormat(Sno)) throw new Exception("Id of student can not contain space!"); if (!Validation.checkNameFormat(Sname)) throw new Exception("Name of student can not contain special(s) character!"); if (!Validation.checkIdFormat(Sclass)) throw new Exception("Name of class can not contain special(s) character!"); if (!Validation.checkNameFormat(Sadress)) throw new Exception("Adress can not contain special(s) character!"); // Thêm tài liệu vào database manager.addNew(Sno, Sname, Sgender, Sclass, Sadress, Semail); // update hiển thị database cho ứng dụng data = manager.getAll(); ((DefaultTableModel) (table.getModel())).setDataVector(data, header); // thông tin thành công JOptionPane.showMessageDialog(contentPane, "Add Success!", "Sucess", JOptionPane.INFORMATION_MESSAGE); catch (Exception e1) JOptionPane.showMessageDialog(contentPane, "Add new failure Details: " + e1, "Error", JOptionPane.ERROR_MESSAGE); Action Listener cho nút ADD

protected void btnDeleteActionPerformed(ActionEvent e) try String Sno = textField.getText(); // khám nghiệm sinh viên tất cả trong database hay không if (!manager.checkStudent(Sno)) throw new Exception("This student ID is not exits in database, So can delete!"); manager.delete(Sno); // update lại dữ liệu hiển thị trên ứng dụng data = manager.getAll(); ((DefaultTableModel) (table.getModel())).setDataVector(data, header); // thông tin xóa thành công xuất sắc JOptionPane.showMessageDialog(contentPane, "Delete Success!", "Sucess", JOptionPane.INFORMATION_MESSAGE); catch (Exception e1) JOptionPane.showMessageDialog(contentPane, "Delete failure Details:" + e1, "Error", JOptionPane.ERROR_MESSAGE); Action Listener cho nút DELETE

(Các chức năng bổ sung cập nhật như tìm kiếm sinh viên, tính điểm trung bình các bạn cũng làm cho tương tự)

BƯỚC 7:In dữ liệu ra tệp tin PDF

protected void btnPrintActionPerformed(ActionEvent e) try // kiểm soát database trước khi in if (data.isEmpty()) throw new Exception("Make sure your load the database in order to lớn print!"); // In vào tệp tin PDF, title là University MessageFormat header = new MessageFormat("University"); MessageFormat footer = new MessageFormat(""); table.print(JTable.PrintMode.FIT_WIDTH, header, footer); catch (Exception e1) JOptionPane.showMessageDialog(contentPane, "Print failure Details: " + e1);

Chạy phần mềm

Điền tên đăng nhập cùng mật khẩu, nếu các bạn dùngWindows authentication, hãy điền bất kỳ ký tự nào tại username cùng password.

*
*

Bắt buộc điền thông tin trước khi kết nối database

*

Kết nối thành công

Thao tác đối kháng giản

*

Thêm một sinh viên thành công

*

*

Nhờ tất cả Validation, mọi dữ liệu nhập vào hồ hết được bảo đảm an toàn đúng tiêu chuẩn, kị lỗi database

*

Xóa một đối tượng ra khỏi cơ sở tài liệu thành công

Lưu trữ cơ sở tài liệu vào tệp tin PDF luôn tiện cho câu hỏi in ấn sau này

*

Một list sinh viên vẫn được tàng trữ thành công

Tổng kết

Hiện nay, technology JDBC đang siêu được ưa chuộng, nhờ nó nhưng mà các ứng dụng Java rất có thể kết nối một cách dễ dàng với hệ các đại lý dữ liệu. Các phần mềm game có thể lưu danh sách người chơi, những phần mềm cai quản nhân sự có thể dễ dàng cai quản các nhân viên của họ bằng việc sử dụng ứng dụng thay vì thao tác làm việc trực tiếp trên cơ sở tài liệu ở lắp thêm chủ.

Xem thêm: Xem Ơn Giời Cậu Đây Rồi! - Ơn Giời Cậu Đây Rồi (Mùa 5)

Qua trên đây chỉ là một ví dụ nhỏ tuổi giúp các bạn hình dung được phương pháp thức hoạt động vui chơi của JDBC thông qua ứng dụng đơn giản này, trên thực tế để quản lý sinh viên thì cần nhiều nhân kiệt hơn, các bạn hãy demo sức mình và trí tuệ sáng tạo thêm nhé. Mong chúng ta luôn ủng hộ mình để mình thường xuyên ra thêm những blog unique khác, nếu các bạn thấy hay gồm thể share cho nhiều người cùng đọc. Cuối cùng, cảm ơn chúng ta đã gọi hết nội dung bài viết này.