Kết nối mysql với java

Trong bài xích này tôi sẽ gợi ý chúng ta thực hiện liên kết vào database thực hiện Java JDBC.

You watching: Kết nối mysql với java

*


*
*

JDBC rất có thể thao tác làm việc cùng với ngẫu nhiên đại lý tài liệu (MySquốc lộ, PostgreSQL, Oracle, SQL Server, …) phụ thuộc một Driver được cung ứng.

JDBC API bao gồm nhì package chính:

java.sql : là một phần của Java standard.javax.sql : là 1 phần của Java enterprise.

Các nhân tố của JDBC

*

DriverManager : là một class cai quản danh sách các Driver (database drivers). Các trải nghiệm kết nối từ ứng dụng Java sẽ được class này kiếm tìm tìm Driver cân xứng trước tiên nhằm tùy chỉnh thiết lập kết nối cùng với cơ sở dữ liệu.Driver: là một trong interface dùng để làm xử lý những giao tiếp cùng với đại lý tài liệu. Đôi khi ứng dụng Java sẽ không còn tiếp xúc thẳng cùng với class này cơ mà trải qua DriverManager.Connection : là 1 trong interface hỗ trợ tất cả những method cần thiết đến bài toán giao tiếp với database. Interface này chứa đựng nhiều cách thức đa dạng nhằm sản xuất liên kết với cùng 1 Database. Tất cả những ban bố giao tiếp với cơ sở tài liệu chỉ có thể trải qua đối tượng người sử dụng Connection. Một Connection đại diện cho 1 phiên (session) làm việc với cửa hàng tài liệu.Statement : là một interface cho phép gửi các câu lệnh SQL tới Database. Hình như, một số Interface kết thừa từ nó cung thêm các tmê mẩn số nhằm triển khai những thủ tục đã có tàng trữ (stored procedure).ResultSet : đại diện thay mặt cho tập vừa lòng các phiên bản ghi (record) đạt được sau khoản thời gian thực hiện truy vấn vấn (query).SQLException : class này xử lý bất cứ lỗi nào xuất hiện thêm trong lúc thao tác làm việc cùng với Database.

Kết nối database cùng với Java JDBC

Để làm việc với JDBC, bạn cần thiết đặt Java cùng một cơ sở tài liệu (database). Quý khách hàng có thể thực hiện ngẫu nhiên database như thế nào, chẳng hạn MySquốc lộ.

See more: Web Không Cho Copy - Không Copy Được Nội Dung Trên Trang Web

Như sẽ trình làng sinh sống bên trên, để làm việc cùng với các đại lý tài liệu từ Java rất cần được bao gồm Driver. Trong JDBC API, bọn họ có java.sql.Driver, đây là một interface tất cả sẵn trong JDK. Mỗi hệ quản trị bắt buộc setup một Driver riêng biệt tương xứng với đại lý tài liệu đó. Bởi vậy các bước cần được có tác dụng là download thư viện Driver ứng với loại Database mong ước thực hiện.

Download Driver

Oracle Database JDBC Driver

Truy cập lệ link: https://www.oracle.com/database/technologies/jdbcdriver-ucp-downloads.html

Chọn phiên bản ojdbc.jar tương ứng với phiên bạn dạng sử dụng. Chẳng hạn ojdbc6.jar sử dụng cho JDK8, JDK7, với JDK6.

Nếu áp dụng maven project, những bạn có thể add dependency tương ứng sinh hoạt links sau: https://mvnrepository.com/artifact/com.oracle.jdbc

dependency> groupId>com.oracle.jdbcgroupId> artifactId>ojdbc14artifactId> version>12.2.0.1version> dependency>MySQL Database JDBC DriverCác các bạn thêm maven dependency hoặc download gói jar tương ứng tại đây: https://mvnrepository.com/artifact/mysql/mysql-connector-java

dependency> groupId>mysqlgroupId> artifactId>mysql-connector-javaartifactId> version>8.0.17version> dependency>SQL Server (JTDS) Database JDBC DriverCác bạn thêm maven dependency hoặc download gói jar khớp ứng tại đây: https://mvnrepository.com/artifact/net.sourceforge.jtds/jtds

dependency> groupId>net.sourceforge.jtdsgroupId> artifactId>jtdsartifactId> version>1.3.1version> dependency>PostgreSquốc lộ Database JDBC DriverCác chúng ta thêm maven dependency hoặc download gói jar tương ứng tại đây: https://mvnrepository.com/artifact/org.postgresql/postgresql

dependency> groupId>org.postgresqlgroupId> artifactId>postgresqlartifactId> version>42.2.7version> dependency>MariaDB Database JDBC DriverCác chúng ta thêm maven dependency hoặc download gói jar tương ứng tại đây: https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client

dependency> groupId>org.mariadb.jdbcgroupId> artifactId>mariadb-java-clientartifactId> version>2.4.4version> dependency>MongoDB Database JDBC DriverCác bạn thêm maven dependency hoặc download gói jar tương ứng trên đây: https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver

dependency> groupId>org.mongodbgroupId> artifactId>mongo-java-driverartifactId> version>3.11.0version> dependency>

Kết nối database tự Java

Các bước giao tiếp giữa lịch trình Java với Database:

Load Driver.Tạo kết nối (Open Connection).Tạo câu lệnh truy nã vấn Squốc lộ (Statement).Thực thi câu lệnh truy hỏi vấn SQL (Exexinh tươi Query).Đóng kết nối (Cthua kém Connection).Load Driver

Để kết nối với database, bọn họ cần load driver và register nó cùng với áp dụng. Có 2 cách để thực hiện:

Class.forName() : load class Driver trong memory trên thời khắc runtime. Để ĐK gọi pmùi hương thức: Class.forName(“driverName”);DriverManager.registerDriver() : DriverManager là class tất cả sẵn vào Java. Để đăng ký Call phương thức: DriverManager.registerDriver(new DriverName());

Chẳng hạn nhằm kết nối với MySQL database, ta ĐK nhỏng sau:

Class.forName("com.mysql.jdbc.Driver"); // Or DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());Tạo kết nối (mở cửa Connection)Sau khi đang load Driver, bọn họ tạo nên connection:

DriverManager.getConnection(connectionURL); // Or DriverManager.getConnection(connectionURL, userName, password);lấy ví dụ như với MySQL:

// Pattern String connectionURL = "jdbc:mysql://hostname:port/dbname"; // Example String connectionURL = "jdbc:mysql://hostname:3306/jdbcdemo"; Connection nhỏ = DriverManager.getConnection(connectionURL, username, password);Tạo câu lệnh truy vấn vấn SQL (Statement)Sau lúc 1 kết nối được cấu hình thiết lập, bạn cũng có thể địa chỉ với các đại lý tài liệu.

Các interface JDBCStatement, CallableStatement và PreparedStatement xác định các thủ tục được cho phép gửi những lệnh SQL và thừa nhận tài liệu từ bỏ cửa hàng dữ liệu.

Statement st = con.createStatement();Thực thi câu lệnh truy vấn vấn Squốc lộ (Exexinh tươi Query)Bây giờ mang lại phần đặc biệt tuyệt nhất, sẽ là thực hiện câu lệnh tróc nã vấn Squốc lộ (exexinh đẹp query). Nhỏng chúng ta biết, có thể có tương đối nhiều nhiều loại tróc nã vấn. Một trong những kia là:

Truy vấn để cập nhật (update) / cyếu (insert)/ xóa (delete) trong cửa hàng dữ liệu.Truy vấn để mang tài liệu (select).

Statement hỗ trợ một số trong những cách làm để tiến hành tầm nã vấn SQL tương xứng với các loại trên:

Phương thức execQuery() : được thực hiện nhằm thực hiện các tróc nã vấn tầm nã xuất quý giá trường đoản cú các đại lý dữ liệu (select). Phương thức này trả về đối tượng người sử dụng ResultSet hoàn toàn có thể được sử dụng để lấy tất cả các dữ liệu (record) của bảng.Phương thơm thức execUpdate() : được sử dụng nhằm thực hiện những tầm nã vấn insert/ update/ delete.Phương thơm thức execute() : có thể xúc tiến cả 2 ngôi trường đúng theo trên. Nếu cách thức statement.getUpdateCount() trả về số lượng record bị affect.Nếu giá bán trị > 0, Tức là xúc tiến các câu lệnh insert/ update/ delete.Nếu giá chỉ trị = 0, tức là xúc tiến những câu lệnh insert/ update/ delete không có chiếc như thế nào bị ảnh hưởng hoặc thực hiện câu lệnh update data structure.Nếu giá bán trị = -1, có nghĩa là thực thi câu lệnh select. khi kia, hoàn toàn có thể hotline tiếp lệnh statement.getResultSet() để đưa ResultSet.

Ví dụ:

int numberRowsAffected = st.executeUpdate(sqlInsert); if (numberRowsAffected == 0) System.out.println("insertion failed"); else System.out.println("inserted successfully : " + sqlInsert); Đóng kết nối (Cthất bại Connection)Cuối thuộc, sau thời điểm đã thực hiện họ rất cần được gọi pmùi hương thức close() nhằm đóng kết nối (Connection) cùng giải pđợi tài nguyên.

Bằng cách đóng kết nối, các đối tượng người dùng của Statement và ResultSet sẽ được đóng tự động. Tuy nhiên, chúng ta buộc phải tập thói quen close() Statement sau khi sử dụng tuyệt bởi vì chờ đón điều đó xẩy ra Lúc nó auto bị đóng góp để giải phóng tài nguyên ổn. điều đặc biệt nếu bọn họ xúc tiến Statement trong tầm lặp, thì rất có thể đã gặp mặt sự việc về thiếu thốn tài ngulặng thực hiện ví như mong chờ nó auto đóng góp.

khi Statement được close() thì ResultSet của Statement cũng được cthất bại.

Chương trình Java liên kết cơ sử dữ liệu sử dụng JDBC API

Chương trình bên dưới chỉ dễ dàng và đơn giản triển khai kết nối mang lại cơ sở dữ liệu MySQL cùng thêm 1 chiếc tài liệu vào bảng user.

See more: Học Tiếng Anh Đường Phố Thông Dụng Nhất, Đường Phố Trong Tiếng Tiếng Anh

package com.gpcoder; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class HelloJdbc private static final String hostName = "localhost"; private static final String dbName = "jdbcdemo"; private static final String userName = "root"; private static final String password = ""; // jdbc:mysql://hostname:port/dbname private static final String connectionURL = "jdbc:mysql://" + hostName + ":3306/" + dbName; public static void main(String<> args) throws ClassNotFoundException, SQLException // 1. Load Driver // Class.forName("com.mysql.jdbc.Driver"); DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver()); // 2. xuất hiện connection Connection bé = DriverManager.getConnection(connectionURL, userName, password); // 3. Create Statement Statement st = con.createStatement(); // 4. Exexinh tươi query String sqlInsert = "INSERT INTO user(username, password, createdDAte) VALUE("gpcoder", "123", now());"; int numberRowsAffected = st.executeUpdate(sqlInsert); if (numberRowsAffected == 0) System.out.println("insertion failed"); else System.out.println("inserted successfully : " + numberRowsAffected); st.close(); // 5. Close connection con.close(); Thực thi công tác trên ta có hiệu quả sau:

inserted successfully : 1Lưu ý: các bạn nên được đặt câu lệnh close() trong finally bloông chồng trong câu lệnh try-catch-finally hoặc sử dụng kĩ năng mới try-with-resource để bảo vệ resource luôn được cđại bại sau khoản thời gian thực hiện. Ví dụ:

package com.gpcoder; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class HelloJdbcWithJava8 private static final String hostName = "localhost"; private static final String dbName = "jdbcdemo"; private static final String userName = "root"; private static final String password = ""; // jdbc:mysql://hostname:port/dbname private static final String connectionURL = "jdbc:mysql://" + hostName + ":3306/" + dbName; public static void main(String<> args) throws ClassNotFoundException, SQLException // 1. Load Driver // Class.forName("com.mysql.jdbc.Driver"); DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver()); try ( // 2. mở cửa connection Connection nhỏ = DriverManager.getConnection(connectionURL, userName, password); // 3. Create Statement Statement st = bé.createStatement(); ) // 4. Exeđáng yêu query String sqlInsert = "INSERT INTO user(username, password, createdDAte) VALUE("gpcoder", "123", now());"; int numberRowsAffected = st.executeUpdate(sqlInsert); if (numberRowsAffected == 0) System.out.println("insertion failed"); else System.out.println("inserted successfully : " + numberRowsAffected); // 5. Cđại bại connection: will be tự động closed by try-with-resource Trên đấy là một số trong những kiến thức và kỹ năng cơ bản về kết nối các đại lý tài liệu với Java JDBC. Trong nội dung bài viết tiếp theo sau, bọn họ đã cùng tìm hiểu sâu hơn về các API của JDBC.


Chuyên mục: Chia sẻ