[Java2_04] Kết Nối Và Truy Vấn Dữ Liệu Trong MySQL Bằng Java
Có thể bạn quan tâm
Bài đăng nổi bật
Học Ngành Gì KHÔNG THẤT NGHIỆP
13:22 Trang chủJava2 [Java2_04] Kết Nối và Truy Vấn dữ liệu trong MySQL bằng Java 13:58 1 Nhận xét
Kết nối với MySQL bằng Java 1. Cài đặt MySQL
Bạn đã học xong kỳ 1, tức là bạn đã có kiến thức cơ bản về SQL, nên trong phạm vi bài viết này tôi không nhắc lại các phần kiến thức cơ bản liên quan tới SQL. Tuy nhiên, SQL Server có một nhược điểm đó là nó không độc lập với nền tảng, và việc cài đặt hơi tốn nhiều dung lượng. Do vậy, trong phạm vi các hướng dẫn này, tôi sẽ sử dụng MySQL gọn nhẹ được cài đặt sẵn trong XAMPP server. (Ngoài ra, khi cài đặt XAMPP xong thì lúc học PHP các bạn sẽ không phải cặt đặt gì thêm nữa). Để thao tác với cơ sở dữ liệu dễ dàng và gọn nhẹ thì tôi khuyên bạn hãy sử dụng dụng DataGrip (cho trọn bộ với bạn IntelliJ IDEA). Các bạn hãy cài đặt XAMP và DataGrip theo hướng dẫn trong video này của tôi nhé <32. Cài đặt JDBC Driver
Để kết nối tới cơ sở dữ liệu, bạn cần cài đặt trình điều khiển Driver phù hợp với loại cơ sở dữ liệu mình chọn. Ví dụ bạn chọn MySQL thì bạn cần search java jdbc driver for mysql. Nếu các bạn dùng sql thì thay sql vào mysql nhé. Các bạn hãy xem video này để biết cách Add Dependencies vào project trong IntelliJ IDEA nhé.3. Thiết lập cơ sở dữ liệu
Để viết chương trình kết nối với cơ sở dữ liệu, thì trước tiên chúng ta cần có cơ sở dữ liệu đã ;) Vậy trong bước này chúng ta sẽ cùng nhau chuẩn bị một cơ sở dữ liệu nhé. Chúng ta sẽ gọi cơ sở dữ liệu của mình " ebookshop" chứa một bảng gọi là " books", với 5 cột, như sau: Database: ebookshop Table: books +-------+----------------------------+---------------+---------+-------+ | id | title | author | price | qty | | (INT) | (VARCHAR(50)) | (VARCHAR(50)) | (FLOAT) | (INT) | +-------+----------------------------+---------------+---------+-------+ | 1001 | Java for dummies | Dang Kim Thi | 11.11 | 11 | | 1002 | More Java for dummies | CodeLean VN | 22.22 | 22 | | 1003 | More Java for more dummies | Mohammad Ali | 33.33 | 33 | | 1004 | A Cup of Java | Kumar | 44.44 | 44 | | 1005 | A Teaspoon of Java | Kevin Jones | 55.55 | 55 | +-------+----------------------------+---------------+---------+-------+ Start MySQL Server: Khởi động máy chủ MySQL và xác minh số cổng TCP của máy chủ từ các thông báo trên bàn điều khiển. Tôi sẽ giả sử rằng máy chủ MySQL đang chạy trên số cổng mặc định là 3306. Chạy các câu lệnh SQL sau để tạo bảng và cơ sở dữ liệu thử nghiệm của chúng tôi. create database if not exists ebookshop; use ebookshop; drop table if exists books; create table books ( id int, title varchar(50), author varchar(50), price float, qty int, primary key (id)); insert into books values (1001, 'Java for dummies', 'Dang Kim Thi', 11.11, 11); insert into books values (1002, 'More Java for dummies', 'CodeLean VN', 22.22, 22); insert into books values (1003, 'More Java for more dummies', 'Mohammad Ali', 33.33, 33); insert into books values (1004, 'A Cup of Java', 'Kumar', 44.44, 44); insert into books values (1005, 'A Teaspoon of Java', 'Kevin Jones', 55.55, 55); select * from books;4. Thao tác với cơ sở dữ liệu
Để kết nối và thao tác với cơ sở dữ liệu, chúng ta cần có 4 bước cơ bản như sau: - Tạo ra một kết nối tới cơ sở dữ liệu, đối tượng đó là Connection .
- Tạo ra đối tượng câu lệnh Statement theo Connection, để giữ lệnh SQL.
- Viết một truy vấn SQL và thực hiện truy vấn, thông qua Statement và Connection được tạo.
- Xử lý kết quả truy vấn.
- Đóng Statement và Connection giải phóng tài nguyên.
Chúng ta sẽ minh họa lập trình cơ sở dữ liệu Java bằng các ví dụ sau.
3.1 Example 1: SQL SELECT
Đây là đoạn ví dụ thực hiện lệnh SELECT để truy vấn cơ sở dữ liệu MySQL. Đặt tên file là "JdbcSelectTest.java"| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import java.sql.*; // Using 'Connection', 'Statement' and 'ResultSet' classes in java.sql package public class JdbcSelectTest { // Save as "JdbcSelectTest.java" (JDK 7 and above) public static void main(String[] args) { try ( // Step 1: Allocate a database 'Connection' object Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/ebookshop?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC", "root", ""); // For MySQL only // The format is: "jdbc:mysql://hostname:port/databaseName", "username", "password" // Step 2: Allocate a 'Statement' object in the Connection Statement stmt = conn.createStatement(); ) { // Step 3: Execute a SQL SELECT query. The query result is returned in a 'ResultSet' object. String strSelect = "select title, price, qty from books"; System.out.println("The SQL statement is: " + strSelect + "\n"); // Echo For debugging ResultSet rset = stmt.executeQuery(strSelect); // Step 4: Process the ResultSet by scrolling the cursor forward via next(). // For each row, retrieve the contents of the cells with getXxx(columnName). System.out.println("The records selected are:"); int rowCount = 0; while(rset.next()) { // Move the cursor to the next row, return false if no more row String title = rset.getString("title"); double price = rset.getDouble("price"); int qty = rset.getInt("qty"); System.out.println(title + ", " + price + ", " + qty); ++rowCount; } System.out.println("Total number of records = " + rowCount); } catch(SQLException ex) { ex.printStackTrace(); } // Step 5: Close conn and stmt - Done automatically by try-with-resources (JDK 7) } } |
- Các hoạt động JDBC được thực hiện thông qua các đối tượng " Connection", " Statement" và " ResultSet" (được xác định trong gói java.sql). Tuy nhiên, bạn không cần biết chi tiết mà chỉ biết các phương thức công khai được xác định trong API (Giao diện chương trình ứng dụng). Bạn cũng không cần phải phát minh lại các bánh xe bằng cách tự tạo các lớp này (sẽ mất nhiều năm?!). Thành phần phần mềm "tái sử dụng" là một thế mạnh chính của OOP.
- Lưu ý rằng có rất ít lập trình liên quan đến việc sử dụng lập trình JDBC. Bạn chỉ phải xác định URL cơ sở dữ liệu , viết truy vấn SQL và xử lý kết quả truy vấn. Các mã còn lại là loại "mẫu chương trình JDBC tiêu chuẩn". Một lần nữa, điều này là do các bánh xe đã được phát minh.
- Trong Dòng 7, chúng tôi tạo ra một đối tượng Connection (được gọi conn) thông qua . Chương trình Java sử dụng cái gọi là URL cơ sở dữ liệu để kết nối với máy chủ: DriverManager.getConnection(database-url, db-user, password)
Phân tích chương trình
- Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:{port}/{db-name}", "{db-user}", "{password}");
- // Example
- Trong Dòng 13, chúng tôi phân bổ một Statementđối tượng (được gọi stmt) trong Connectionthông qua conn.createStatement().
- Để thực thi lệnh SQL SELECT, chúng ta gọi phương thức stmt.executeQuery("SELECT ..."). Nó trả về kết quả truy vấn trong một ResultSetđối tượng (được gọi rset).
- Các ResultSetmô hình bảng được trả về, có thể được truy cập thông qua một con trỏ hàng . Con trỏ ban đầu định vị trước hàng đầu tiên trong ResultSet. rset.next()di chuyển con trỏ đến hàng đầu tiên. Sau đó bạn có thể sử dụng để lấy giá trị của cột cho hàng đó, nơi tương ứng với các loại cột, chẳng hạn như , , và . Trả về ở hàng cuối cùng, kết thúc vòng lặp while.rset.getXxx(columnName)XxxintfloatdoubleStringrset.next()false
- Bạn có thể sử dụng để lấy tất cả các loại ( , , vv).rset.getString(columnName)intdouble
- Để có tính di động tối đa, ResultSetcác cột trong mỗi hàng phải được đọc theo thứ tự từ trái sang phải và mỗi cột chỉ được đọc một lần thông qua các getXxx()phương thức. Phát hành getXxx()cho một ô nhiều lần có thể gây ra lỗi lạ.
- Trong ví dụ này, chúng tôi sử dụng tính năng mới của JDK 7 được gọi là tài nguyên thử, tự động đóng tất cả các tài nguyên đã mở trong mệnh đề thử, trong trường hợp của chúng tôi, các đối tượng Connectionvà Statementđối tượng.
- SELECT * FROM books
- SELECT title, price FROM books WHERE author = 'CodeLean VN'
- SELECT title, author, price, qty FROM books WHERE author = 'CodeLean VN' OR price >= 30 ORDER BY price DESC, id ASC
You might like
Hiện thêm1 Nhận xét
Đức Nhữlúc 12:59 18 tháng 4, 2020
Very Good
Trả lờiXóaTrả lời- Trả lời
Đăng nhận xét
Mới hơn Cũ hơnFollow Us
Chủ Đề Tôi Quan Tâm ;)
- .Net
- .net core
- Agile
- AI
- AngularJS
- Anroid
- AP
- Azure
- BDW
- Bootstrap
- c
- C#
- Cấu Trúc Dữ Liệu và Giải Thuật
- CodeLean
- CSDL
- CSS
- Database
- Design Pattern
- DesignThinking
- DevOps
- Docker
- Git
- github
- HTML
- Hướng_Nghiệp
- Index
- ISA
- Java
- Java1
- Java2
- JavaAdvanced
- JavaCore
- JavaScript
- JSP & Servlet
- Laravel Framework
- Laravel9
- Lập trình C
- Lập trình cho trẻ
- LINQ
- MLJ
- MySQL
- NodeJS
- OOAD
- PHP
- Programming
- Python
- QA
- React Native
- Review Sách
- Spring Boot
- Spring Framework
- SQL
- Teaching
- Test
- Thiết Kế Website
- Tools
- TypeScript
- Web Development
- WebAPI
Most Popular
Chuẩn hoá dữ liệu là gì? 1NF, 2NF, 3NF & BCNF với các ví dụ
11:57[MySQL 05] Mô hình ER là gì và ví dụ
12:08Tìm Phủ Tối thiểu của một Hàm
12:29Xác định khóa, Tìm phủ tối thiểu, Chuẩn hóa dữ liệu
16:36Big O: Cách tính độ phức tạp của thời gian và không gian
16:37Bắt đầu học Node.js với Visual Studio Code
10:07[Web API] Hướng dẫn từ cơ bản tới nâng cao Web API ASP.NET
19:21[MySQL 02] Hướng dẫn sử dụng MySQL Workbench
11:32Hướng dẫn sửa cấu hình để chạy Dự Án Laravel từ Source Code có sẵn
14:59[JSP & Servlet] Tạo Web Application JSP Servlet Sử dụng JSTL với Tomcat 10 trên IntelliJ
21:27Biểu mẫu liên hệ
Từ khóa » Kết Nối Xampp Với Java
-
Kết Nối Netbeans Với XAMPP - YouTube
-
Kết Nối IntelliJ Với Xampp - YouTube
-
Kết Nối Java Với MySQL - VietTuts
-
Java: Kết Nối Cơ Sở Dữ Liệu Java Với MySQL | V1Study
-
Hướng Dẫn Kết Nối Java Với Mysql - EXP.GG
-
Hướng Dẫn Cài đặt Xampp, JDK, Netbeans Phiên Bản Mới Nhất
-
Hướng Dẫn Sử Dụng Java JDBC Kết Nối Cơ Sở Dữ Liệu - Openplanning
-
Kết Nối MySQL Bằng Java JDBC Driver - Freetuts
-
Hướng Dẫn Cách Kết Nối đến Database MySQL Trong Eclipse | TopDev
-
JAVA Kết Nối Tới Cơ Sở Dữ Liệu MySQL Dùng IDE Netbean
-
Kết Nối Database Với Java Spring - Viblo
-
Cách Kết Nối Với Kết Nối Cơ Sở Dữ Liệu Trong Java - HelpEx
-
Kết Nối Java Trong Eclipse Với Xampp | VFO.VN