Kiến thức

Hướng dẫn sử dụng JDBC kết nối cơ sở dữ liệu trong Java 07 tháng 03, 2022 – 130 lượt xem Java nâng cao MySQL Java Đầu mục bài viết Bài viết liên quan Khoá học hay

Ngày nay, số đông các phần mềm Java hoặc các phạm vi của nó đang dần chuyển sang ORM (Ánh xạ quan hệ nhân vật) để làm việc với cơ sở dữ liệu, bao gồm cả cơ chế ngủ đông được sử dụng phổ biến. Vì thế, mọi người có xu thế dần quên đi JDBC, nhưng mà bạn có biết rằng bên dưới cơ chế ngủ đông đang sử dụng JDBC để kết nối với cơ sở dữ liệu và thực thi các lệnh SQL nhưng nó tạo ra.

Trong loạt bài viết này, chúng ta sẽ mày mò về JDBC và cách sử dụng chúng.

JDBC là gì?

JDBC – Java Database Conectivity, là 1 API tiêu chuẩn để kết nối giữa tiếng nói lập trình Java và cơ sở dữ liệu. Nó là 1 phần của JavaSE (Java Standard Edition). API JDBC sử dụng trình điều khiển JDBC để kết nối với cơ sở dữ liệu.

Kiến trúc JDBC

  • JDBC API: Cho phép 1 chương trình Java thực thi các câu lệnh SQL và truy xuất kết quả. 1 số lớp và giao diện quan trọng được khái niệm trong API JDBC như sau:
  • DriverManager: Đóng 1 vai trò quan trọng trong kiến ​​trúc JDBC. Nó sử dụng 1 số thứ tự điều khiển dành riêng cho cơ sở dữ liệu để kết nối hiệu quả các phần mềm công ty với cơ sở dữ liệu.
  • Trình điều khiển JDBC: Để giao tiếp với nguồn dữ liệu phê duyệt JDBC, bạn cần Trình điều khiển JDBC để giao tiếp với nguồn dữ liệu tương ứng. Có 4 loại trình điều khiển JDBC:
    • JDBC – Trình điều khiển cầu ODBC
    • Native Drive
    • Trình điều khiển giao thức mạng
    • Người tài xế mỏng

Các thành phần chính trong JDBC

  • DriverManager: Là 1 lớp dùng để điều hành danh sách các Trình điều khiển
  • Trình điều khiển: 1 giao diện, chịu nghĩa vụ xử lý giao tiếp giữa phần mềm và cơ sở dữ liệu
  • Kết nối: Là 1 giao diện, cung ứng các phương thức thao tác với cơ sở dữ liệu
  • Câu lệnh: Là 1 giao diện, để thực thi các câu lệnh SQL tới cơ sở dữ liệu
  • ResultSet: 1 bảng dữ liệu đại diện cho tập kết quả từ cơ sở dữ liệu được trả về bởi các lệnh SQL
  • SQLException: Xử lý ngoại lệ xảy ra trong cơ sở dữ liệu

Các bước kết nối cơ sở dữ liệu với Java

  • Tải trình điều khiển
  • Tạo kết nối (Create Connection)
  • Tạo truy hỏi SQL (Câu lệnh)
  • Thực thi truy hỏi SQL (Truy hỏi loại bỏ)
  • Đóng kết nối

Tạo dự án mẫu JDBC

Sẵn sàng cơ sở dữ liệu

Trong tỉ dụ này, tôi sẽ sử dụng MySQL. Tôi có 1 cái bảng users với cấu trúc sau:

Thêm 1 số dữ liệu cho khách hàng. chiếc bàn

Setup thư viện

Ở đây tôi sẽ sử dụng Maven để điều hành các chương trình Java

Thêm 2 dependency vào tệp pom.xml

<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 -->
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc10</artifactId>
    <version>19.13.0.0.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>

Nếu bạn sử dụng cơ sở dữ liệu khác thay vì MySQL thì hãy sử dụng dependency khác

Tạo kết nối với cơ sở dữ liệu

Để có thể kết nối với cơ sở dữ liệu, chúng ta cần sẵn sàng các thông tin như: tên máy, tên khách hàng, mật khẩu, cơ sở dữ liệu

public class ConnectJDBC {
    private String hostName = "localhost:8082";
    private String dbName = "my_database";
    private String username = "root";
    private String password = "123";

    private String connectionURL = "jdbc:mysql://"+hostName+"/"+dbName;

    public Connection connect(){
        //Tạo nhân vật Connection
        Connection conn = null;

        try {
            conn = DriverManager.getConnection(connectionURL, username, password);
            System.out.println("Kết nối thành công");
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return conn;
    }
}

Sử dụng JDBC API để truy hỏi dữ liệu

Nhận tất cả thông tin khách hàng

public class Main {
    public static void main(String[] args) {
        ConnectJDBC connectJDBC = new ConnectJDBC();
        Connection conn = connectJDBC.connect();

        String query = "SELECT * FROM users";

        Statement stm = null;
        try {
            //Tạo nhân vật Statement
            stm = conn.createStatement();

            //Thực thi truy hỏi và trả về nhân vật ResultSet
            ResultSet rs = stm.executeQuery(query);

            //Duyệt kết quả trả về
            while (rs.next()){  //Chuyển di con trỏ xuống bản ghi kế tiếp
                int id = rs.getInt("id");
                String username = rs.getString("username");
                String password = rs.getString("password");
                String email = rs.getString("email");

                System.out.println(id + " - " + username + " - " + password + " - " + email);
            }
            //Đóng kết nối
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
}

Kết quả:

Kết nối thành công
1 - ngoc - 12345 - ngoc@gmail.com
2 - hoang - 12345 - hoang@gmail.com
3 - linh - 12345 - linh@gmail.com
4 - quan - 12345 - quan@gmail.com

Chỉ định các thông số đầu vào với PreparedStatement

Các thông số được biểu hiện bằng ?, bạn phải cung ứng trị giá cho tất cả các thông số trước lúc tiến hành câu lệnh SQL. Mỗi thông số sẽ được ghi lại bằng số quy trình, thông số trước hết có địa điểm là 1, thông số tiếp theo là 2, v.v.

public class Main {
    public static void main(String[] args) {
        ConnectJDBC connectJDBC = new ConnectJDBC();
        Connection conn = connectJDBC.connect();

        String query = "SELECT * FROM users WHERE username = ?";

        PreparedStatement pstm = null;
        try {
            //Tạo nhân vật Statement
            pstm = conn.prepareStatement(query);

            //gán các trị giá vào thông số
            pstm.setString(1, "ngoc");

            //Thực thi truy hỏi và trả về nhân vật ResultSet
            ResultSet rs = pstm.executeQuery();

            //Duyệt kết quả trả về
            while (rs.next()){
                int id = rs.getInt("id");
                String username = rs.getString("username");
                String password = rs.getString("password");
                String email = rs.getString("email");

                System.out.println(id + " - " + username + " - " + password + " - " + email);
            }

            //Đóng kết nối
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Kết quả:

Kết nối thành công
1 - ngoc - 12345 - ngoc@gmail.com

Thêm dữ liệu mới

public class Main {
    public static void main(String[] args) {
        ConnectJDBC connectJDBC = new ConnectJDBC();
        Connection conn = connectJDBC.connect();

        String query = "INSERT INTO users(id, username, password, email) " +
                "VALUES (null, ?,?,?)";

        PreparedStatement pstm = null;
        try {
            pstm = conn.prepareStatement(query);

            pstm.setString(1, "hung");
            pstm.setString(2, "123456789");
            pstm.setString(3, "hung@gmail.com");

            //Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate(), nó sẽ trả về số hàng bị ảnh hưởng
            int row = pstm.executeUpdate();
            if(row != 0){
                System.out.println("Thêm thành công " + row);
            }

            //Đóng kết nối
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Kết quả:

Cập nhật mật khẩu

public class Main {
    public static void main(String[] args) {
        ConnectJDBC connectJDBC = new ConnectJDBC();
        Connection conn = connectJDBC.connect();

        String query = "UPDATE users SET password = ? WHERE id = ?";

        PreparedStatement pstm = null;
        try {
            pstm = conn.prepareStatement(query);

            pstm.setString(1, "ngoc123");
            pstm.setInt(2, 1);

            //Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate, nó sẽ trả về số hàng bị ảnh hưởng
            int row = pstm.executeUpdate();
            if(row != 0){
                System.out.println("Cập nhật thành công " + row);
            }

            //Đóng kết nối
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Kết quả:

Xóa bản ghi

public class Main {
    public static void main(String[] args) {
        ConnectJDBC connectJDBC = new ConnectJDBC();
        Connection conn = connectJDBC.connect();

        String query = "DELETE FROM users WHERE id = ?";

        PreparedStatement pstm = null;
        try {
            pstm = conn.prepareStatement(query);

            pstm.setInt(1, 1);

            //Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate, nó sẽ trả về số hàng bị ảnh hưởng
            int row = pstm.executeUpdate();
            if(row != 0){
                System.out.println("Xóa thành công " + row);
            }

            //Đóng kết nối
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Kết quả:

Xem toàn thể mã tại đây

Khóa học Java FullStack cho người mới mở màn
Thông tin cụ thể: https://java.techmaster.vn/
Liên hệ cung cấp: Ms Mẫn – 0963023185 (zalo)


Thông tin thêm

Chỉ dẫn sử dụng JDBC kết nối cơ sở dữ liệu trong Java

07 tháng 03, 2022 – 130 lượt xem

Java tăng lên MySQL Java

Đầu mục bài viết

Bài viết liên can

Khoá học hay

#Hướng #dẫn #sử #dụng #JDBC #kết #nối #cơ #sở #dữ #liệu #trong #Java07 #tháng #lượt #xem #Java #nâng #cao #MySQL #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
[rule_3_plain] #Hướng #dẫn #sử #dụng #JDBC #kết #nối #cơ #sở #dữ #liệu #trong #Java07 #tháng #lượt #xem #Java #nâng #cao #MySQL #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
Ngày nay số đông các phần mềm Java hay các framework của nó đều dần chuyển sang các ORM(Object Relational Mapping) để làm việc với database, có thể kể tới là hibernate được sử dụng phổ biến. Thế nên mọi người có xu thế dần quên đi JDBC, thế nhưng mà các bạn có biết rằng bên dưới hibernate đang sử dụng JDBC để để kết nối tới database và thực thi các lệnh SQL được nó tạo ra.
Trong loạt 3̀i viết này, chúng ta sẽ cùng tìm hiểu về JDBC và cách sử dụng chúng.
JDBC là gì?
JDBC – Java Database Conectivity, là một API chuẩn để kết nối giữa ngôn ngữ lập trình Java và các database. Nó là một phần của JavaSE (Java Standard Edition). API JDBC sử dụng JDBC drivers để kết nối với cơ sở dữ liệu.
Kiến trúc JDBC

JDBC API: Cho phép chương trình Java thực thi các câu lệnh SQL và truy xuất kết quả. 1 số lớp và interface quan trọng được khái niệm trong JDBC API như sau:
DriverManager: Vào vai trò quan trọng trong kiến trúc JDBC. Nó sử dụng 1 số thứ tự điều khiển dành riêng cho cơ sở dữ liệu để kết nối hiệu quả các phần mềm công ty với database
JDBC Driver: Để giao tiếp với nguồn dữ liệu phê duyệt JDBC, bạn cần JDBC Driver để giao tiếp với nguồn dữ liệu tương ứng. Có 4 loại JDBC drivers:
JDBC – ODBC Bridge Driver
Native Drive
Network Protocol Driver
Thin driver

Các thành phần chính trong JDBC

DriverManager: Là 1 class dùng để điều hành danh sách các Driver
Driver: Là 1 interface, chịu nghĩa vụ xử lý các hoạt động giao tiếp giữa phần mềm và database
Connection: Là 1 interface, cung ứng các phương thức cho việc thao tác với database
Statement: Là 1 interface, để thực thi các câu lệnh SQL xuống database
ResultSet: Là 1 bảng dữ liệu nhưng trình diễn tập kết quả từ cơ sở dữ liệu trả về bởi các lệnh SQL
SQLException: Xử lý ngoại lệ xảy ra trong database

Các bước kết nối database với Java

Load driver
Tạo kết nối (Create Connection)
Tạo câu lệnh truy hỏi SQL (Statement)
Thực thi câu lệnh truy hỏi SQL (Excute query)
Đóng kết nối (Close Connection)

Tạo project tỉ dụ JDBC
Sẵn sàng database
Trong tỉ dụ này mình sẽ sử dụng MySQL. Mình có 1 bảng users với cấu trúc sau:

Thêm 1 số dữ liệu vào bảng users

Setup thư viện
Ở đây mình sẽ sử dụng Maven để điều hành chương trình Java
Add 2 dependency vào file pom.xml

<!– https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 –>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.13.0.0.1</version>
</dependency>

<!– https://mvnrepository.com/artifact/mysql/mysql-connector-java –>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>

Nếu bạn sử dụng database khác thay vì MySQL thì hãy sử dụng các dependency khác
Tạo kết nối đến database
Để có thể kết nối đến database chúng ta cần sẵn sàng các thông tin như: hostname, username, password, database

public class ConnectJDBC {
private String hostName = “localhost:8082”;
private String dbName = “my_database”;
private String username = “root”;
private String password = “123”;

private String connectionURL = “jdbc:mysql://”+hostName+”/”+dbName;

public Connection connect(){
//Tạo nhân vật Connection
Connection conn = null;

try {
conn = DriverManager.getConnection(connectionURL, username, password);
System.out.println(“Kết nối thành công”);
} catch (SQLException e) {
e.printStackTrace();
}

return conn;
}
}

Sử dụng JDBC API để truy hỏi dữ liệu
Lấy ra toàn thể thông tin users

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “SELECT * FROM users”;

Statement stm = null;
try {
//Tạo nhân vật Statement
stm = conn.createStatement();

//Thực thi truy hỏi và trả về nhân vật ResultSet
ResultSet rs = stm.executeQuery(query);

//Duyệt kết quả trả về
while (rs.next()){ //Chuyển di con trỏ xuống bản ghi kế tiếp
int id = rs.getInt(“id”);
String username = rs.getString(“username”);
String password = rs.getString(“password”);
String email = rs.getString(“email”);

System.out.println(id + ” – ” + username + ” – ” + password + ” – ” + email);
}
//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}

}
}

Kết quả:

Kết nối thành công
1 – ngoc – 12345 – ngoc@gmail.com
2 – hoang – 12345 – hoang@gmail.com
3 – linh – 12345 – linh@gmail.com
4 – quan – 12345 – quan@gmail.com

Chỉ định thông số đầu vào với PreparedStatement
Thông số được đại diện bởi dấu ?, bạn phải cung ứng trị giá cho tất cả các thông số trước lúc tiến hành câu lệnh SQL. Mỗi thông số sẽ được ghi lại bằng số quy trình, thông số trước hết có địa điểm là 1, kế tiếp là 2,…

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “SELECT * FROM users WHERE username = ?”;

PreparedStatement pstm = null;
try {
//Tạo nhân vật Statement
pstm = conn.prepareStatement(query);

//gán các trị giá vào thông số
pstm.setString(1, “ngoc”);

//Thực thi truy hỏi và trả về nhân vật ResultSet
ResultSet rs = pstm.executeQuery();

//Duyệt kết quả trả về
while (rs.next()){
int id = rs.getInt(“id”);
String username = rs.getString(“username”);
String password = rs.getString(“password”);
String email = rs.getString(“email”);

System.out.println(id + ” – ” + username + ” – ” + password + ” – ” + email);
}

//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

Kết quả:

Kết nối thành công
1 – ngoc – 12345 – ngoc@gmail.com

Thêm dữ liệu mới

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “INSERT INTO users(id, username, password, email) ” +
“VALUES (null, ?,?,?)”;

PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(query);

pstm.setString(1, “hung”);
pstm.setString(2, “123456789”);
pstm.setString(3, “hung@gmail.com”);

//Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate(), nó sẽ trả về số hàng bị ảnh hưởng
int row = pstm.executeUpdate();
if(row != 0){
System.out.println(“Thêm thành công ” + row);
}

//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

Kết quả:

Update password

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “UPDATE users SET password = ? WHERE id = ?”;

PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(query);

pstm.setString(1, “ngoc123”);
pstm.setInt(2, 1);

//Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate, nó sẽ trả về số hàng bị ảnh hưởng
int row = pstm.executeUpdate();
if(row != 0){
System.out.println(“Cập nhật thành công ” + row);
}

//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

Kết quả:

Xóa 1 record

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “DELETE FROM users WHERE id = ?”;

PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(query);

pstm.setInt(1, 1);

//Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate, nó sẽ trả về số hàng bị ảnh hưởng
int row = pstm.executeUpdate();
if(row != 0){
System.out.println(“Xóa thành công ” + row);
}

//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

Kết quả:

Xem toàn thể code tại đây
Khóa học Java FullStack dành cho người mới bắt đầuChi tiết: https://java.techmaster.vn/Liên hệ cung cấp: Ms Mẫn – 0963023185 (zalo)
#Hướng #dẫn #sử #dụng #JDBC #kết #nối #cơ #sở #dữ #liệu #trong #Java07 #tháng #lượt #xem #Java #nâng #cao #MySQL #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
[rule_2_plain] #Hướng #dẫn #sử #dụng #JDBC #kết #nối #cơ #sở #dữ #liệu #trong #Java07 #tháng #lượt #xem #Java #nâng #cao #MySQL #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
[rule_2_plain] #Hướng #dẫn #sử #dụng #JDBC #kết #nối #cơ #sở #dữ #liệu #trong #Java07 #tháng #lượt #xem #Java #nâng #cao #MySQL #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
[rule_3_plain]

#Hướng #dẫn #sử #dụng #JDBC #kết #nối #cơ #sở #dữ #liệu #trong #Java07 #tháng #lượt #xem #Java #nâng #cao #MySQL #Java #Đầu #mục #bài #viếtBài #viết #liên #quanKhoá #học #hay
Ngày nay số đông các phần mềm Java hay các framework của nó đều dần chuyển sang các ORM(Object Relational Mapping) để làm việc với database, có thể kể tới là hibernate được sử dụng phổ biến. Thế nên mọi người có xu thế dần quên đi JDBC, thế nhưng mà các bạn có biết rằng bên dưới hibernate đang sử dụng JDBC để để kết nối tới database và thực thi các lệnh SQL được nó tạo ra.
Trong loạt 3̀i viết này, chúng ta sẽ cùng tìm hiểu về JDBC và cách sử dụng chúng.
JDBC là gì?
JDBC – Java Database Conectivity, là một API chuẩn để kết nối giữa ngôn ngữ lập trình Java và các database. Nó là một phần của JavaSE (Java Standard Edition). API JDBC sử dụng JDBC drivers để kết nối với cơ sở dữ liệu.
Kiến trúc JDBC

JDBC API: Cho phép chương trình Java thực thi các câu lệnh SQL và truy xuất kết quả. 1 số lớp và interface quan trọng được khái niệm trong JDBC API như sau:
DriverManager: Vào vai trò quan trọng trong kiến trúc JDBC. Nó sử dụng 1 số thứ tự điều khiển dành riêng cho cơ sở dữ liệu để kết nối hiệu quả các phần mềm công ty với database
JDBC Driver: Để giao tiếp với nguồn dữ liệu phê duyệt JDBC, bạn cần JDBC Driver để giao tiếp với nguồn dữ liệu tương ứng. Có 4 loại JDBC drivers:
JDBC – ODBC Bridge Driver
Native Drive
Network Protocol Driver
Thin driver

Các thành phần chính trong JDBC

DriverManager: Là 1 class dùng để điều hành danh sách các Driver
Driver: Là 1 interface, chịu nghĩa vụ xử lý các hoạt động giao tiếp giữa phần mềm và database
Connection: Là 1 interface, cung ứng các phương thức cho việc thao tác với database
Statement: Là 1 interface, để thực thi các câu lệnh SQL xuống database
ResultSet: Là 1 bảng dữ liệu nhưng trình diễn tập kết quả từ cơ sở dữ liệu trả về bởi các lệnh SQL
SQLException: Xử lý ngoại lệ xảy ra trong database

Các bước kết nối database với Java

Load driver
Tạo kết nối (Create Connection)
Tạo câu lệnh truy hỏi SQL (Statement)
Thực thi câu lệnh truy hỏi SQL (Excute query)
Đóng kết nối (Close Connection)

Tạo project tỉ dụ JDBC
Sẵn sàng database
Trong tỉ dụ này mình sẽ sử dụng MySQL. Mình có 1 bảng users với cấu trúc sau:

Thêm 1 số dữ liệu vào bảng users

Setup thư viện
Ở đây mình sẽ sử dụng Maven để điều hành chương trình Java
Add 2 dependency vào file pom.xml

<!– https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 –>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.13.0.0.1</version>
</dependency>

<!– https://mvnrepository.com/artifact/mysql/mysql-connector-java –>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>

Nếu bạn sử dụng database khác thay vì MySQL thì hãy sử dụng các dependency khác
Tạo kết nối đến database
Để có thể kết nối đến database chúng ta cần sẵn sàng các thông tin như: hostname, username, password, database

public class ConnectJDBC {
private String hostName = “localhost:8082”;
private String dbName = “my_database”;
private String username = “root”;
private String password = “123”;

private String connectionURL = “jdbc:mysql://”+hostName+”/”+dbName;

public Connection connect(){
//Tạo nhân vật Connection
Connection conn = null;

try {
conn = DriverManager.getConnection(connectionURL, username, password);
System.out.println(“Kết nối thành công”);
} catch (SQLException e) {
e.printStackTrace();
}

return conn;
}
}

Sử dụng JDBC API để truy hỏi dữ liệu
Lấy ra toàn thể thông tin users

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “SELECT * FROM users”;

Statement stm = null;
try {
//Tạo nhân vật Statement
stm = conn.createStatement();

//Thực thi truy hỏi và trả về nhân vật ResultSet
ResultSet rs = stm.executeQuery(query);

//Duyệt kết quả trả về
while (rs.next()){ //Chuyển di con trỏ xuống bản ghi kế tiếp
int id = rs.getInt(“id”);
String username = rs.getString(“username”);
String password = rs.getString(“password”);
String email = rs.getString(“email”);

System.out.println(id + ” – ” + username + ” – ” + password + ” – ” + email);
}
//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}

}
}

Kết quả:

Kết nối thành công
1 – ngoc – 12345 – ngoc@gmail.com
2 – hoang – 12345 – hoang@gmail.com
3 – linh – 12345 – linh@gmail.com
4 – quan – 12345 – quan@gmail.com

Chỉ định thông số đầu vào với PreparedStatement
Thông số được đại diện bởi dấu ?, bạn phải cung ứng trị giá cho tất cả các thông số trước lúc tiến hành câu lệnh SQL. Mỗi thông số sẽ được ghi lại bằng số quy trình, thông số trước hết có địa điểm là 1, kế tiếp là 2,…

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “SELECT * FROM users WHERE username = ?”;

PreparedStatement pstm = null;
try {
//Tạo nhân vật Statement
pstm = conn.prepareStatement(query);

//gán các trị giá vào thông số
pstm.setString(1, “ngoc”);

//Thực thi truy hỏi và trả về nhân vật ResultSet
ResultSet rs = pstm.executeQuery();

//Duyệt kết quả trả về
while (rs.next()){
int id = rs.getInt(“id”);
String username = rs.getString(“username”);
String password = rs.getString(“password”);
String email = rs.getString(“email”);

System.out.println(id + ” – ” + username + ” – ” + password + ” – ” + email);
}

//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

Kết quả:

Kết nối thành công
1 – ngoc – 12345 – ngoc@gmail.com

Thêm dữ liệu mới

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “INSERT INTO users(id, username, password, email) ” +
“VALUES (null, ?,?,?)”;

PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(query);

pstm.setString(1, “hung”);
pstm.setString(2, “123456789”);
pstm.setString(3, “hung@gmail.com”);

//Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate(), nó sẽ trả về số hàng bị ảnh hưởng
int row = pstm.executeUpdate();
if(row != 0){
System.out.println(“Thêm thành công ” + row);
}

//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

Kết quả:

Update password

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “UPDATE users SET password = ? WHERE id = ?”;

PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(query);

pstm.setString(1, “ngoc123”);
pstm.setInt(2, 1);

//Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate, nó sẽ trả về số hàng bị ảnh hưởng
int row = pstm.executeUpdate();
if(row != 0){
System.out.println(“Cập nhật thành công ” + row);
}

//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

Kết quả:

Xóa 1 record

public class Main {
public static void main(String[] args) {
ConnectJDBC connectJDBC = new ConnectJDBC();
Connection conn = connectJDBC.connect();

String query = “DELETE FROM users WHERE id = ?”;

PreparedStatement pstm = null;
try {
pstm = conn.prepareStatement(query);

pstm.setInt(1, 1);

//Lúc tiến hành các lệnh insert/update/delete sử dụng executeUpdate, nó sẽ trả về số hàng bị ảnh hưởng
int row = pstm.executeUpdate();
if(row != 0){
System.out.println(“Xóa thành công ” + row);
}

//Đóng kết nối
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

Kết quả:

Xem toàn thể code tại đây
Khóa học Java FullStack dành cho người mới bắt đầuChi tiết: https://java.techmaster.vn/Liên hệ cung cấp: Ms Mẫn – 0963023185 (zalo)

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button