Trình kết nối mysql cho java 7
MariaDB Connector/J được sử dụng để kết nối các ứng dụng được phát triển bằng Java với cơ sở dữ liệu MariaDB và MySQL bằng API JDBC tiêu chuẩn. Thư viện được cấp phép LGPL Show
MariaDB Connector/J là trình điều khiển JDBC Loại 4. Nó được phát triển đặc biệt như một trình kết nối JDBC nhẹ để sử dụng với các máy chủ cơ sở dữ liệu MariaDB và MySQL. Ban đầu nó dựa trên mã Drizzle JDBC với nhiều bổ sung và sửa lỗi Khả năng tương thích của máy chủMariaDB Connector/J tương thích với tất cả MariaDB và máy chủ MySQL phiên bản 5. 5. 3 trở lên MariaDB Connector/J phát hành cũ hơn 1. 2. 0 có thể tương thích với các phiên bản máy chủ cũ hơn MariaDB 5. 5 và MySQL5. 5, nhưng các bản phát hành MariaDB Connector/J đó không còn được hỗ trợ nữa Khả năng tương thích JavaĐể xác định sê-ri bản phát hành MariaDB Connector/J nào sẽ là tốt nhất để sử dụng cho từng phiên bản Java, vui lòng xem bảng sau Cài đặt Trình kết nối MariaDB/JMariaDB Connector/J có thể được cài đặt bằng Maven, Gradle hoặc bằng cách đặt thủ công tệp Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=myPassword");4 vào final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);0 của bạn. Xem Cài đặt Trình kết nối MariaDB/J để biết thêm thông tin MariaDB Connector/J Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=myPassword");4 tệp và tarball mã nguồn có thể được tải xuống từ URL sau Các tệp MariaDB Connector/J Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=myPassword");4 cũng có thể được tải xuống từ URL sau Cài đặt phụ thuộcJNA (mạng. java. nhà phát triển. jna. jna) và JNA-PLATFORM (mạng. java. nhà phát triển. jna. nền tảng jna) 4. 2. 1 hoặc cao hơn cũng cần thiết khi bạn muốn kết nối với máy chủ bằng ổ cắm Unix hoặc ống dẫn Windows Sử dụng trình điều khiểnCác tiểu mục sau hiển thị định dạng của chuỗi kết nối JDBC cho máy chủ cơ sở dữ liệu MariaDB và MySQL. Ngoài ra, mã mẫu được cung cấp minh họa cách kết nối với một trong các máy chủ này và tạo bảng Bắt một kết nối mớiCó hai cách tiêu chuẩn để có được một kết nối Sử dụng trình quản lý trình điều khiểnCách ưa thích để có kết nối với MariaDB Connector/J là sử dụng lớp final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);3. Khi lớp final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);4 được sử dụng để định vị và tải MariaDB Connector/J, ứng dụng không cần cấu hình thêm. Lớp final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);4 sẽ tự động tải MariaDB Connector/J và cho phép nó được sử dụng giống như bất kỳ trình điều khiển JDBC nào khác Ví dụ Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=myPassword"); Cách cũ để tải trình điều khiển JDBC cũng vẫn hoạt động đối với Trình kết nối MariaDB/J. e. g. final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);6 jdbc. khả năng tương thích lược đồ mysqlTrình kết nối MariaDB/J 3. 0 chỉ chấp nhận final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);7 làm giao thức trong chuỗi kết nối theo mặc định. Khi cả Trình kết nối MariaDB/J và trình điều khiển MySQL đều được tìm thấy trong đường dẫn lớp, sử dụng final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);7 làm giao thức giúp đảm bảo rằng Java chọn Trình kết nối MariaDB/J Trình kết nối/J vẫn cho phép final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);9 làm giao thức trong chuỗi kết nối khi tùy chọn jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]]0 được đặt. Ví dụ jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]]1 (2. x đã cho phép các URL kết nối bắt đầu bằng cả jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]]2 và jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]]3) Sử dụng hồ bơiMột cách khác để có kết nối với MariaDB Connector/J là sử dụng nhóm kết nối MariaDB Connector/J cung cấp 2 triển khai nhóm Nguồn dữ liệu khác nhau
Hồ bơi nội bộCấu hình nhóm nội bộ của trình điều khiển cung cấp khả năng triển khai nhóm rất nhanh và xử lý các sự cố mà hầu hết nhóm java gặp phải
Xem tài liệu hồ bơi để biết thêm thông tin hồ bơi bên ngoàiKhi sử dụng nhóm kết nối bên ngoài, lớp Trình điều khiển MariaDB jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]]7 phải được định cấu hình Ví dụ sử dụng nhóm kết nối hikariCP JDBC final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false); Xin lưu ý rằng lớp trình điều khiển do MariaDB Connector/J cung cấp không phải là jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]]8 mà là jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]]7 Lớp final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);00 có thể được sử dụng khi cấu hình nguồn dữ liệu nhóm chỉ cho phép java. sql. Triển khai nguồn dữ liệu chuỗi kết nốiĐịnh dạng của chuỗi kết nối JDBC là jdbc:mariadb:[replication:|loadbalance:|sequential:]//[,...]/[database][?=[&=]] Máy chủMô tả final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);0 Một số lưu ý về điều này
ví dụ
Chế độ chuyển đổi dự phòng và cân bằng tảiCác chế độ chuyển đổi dự phòng và cân bằng tải đã được giới thiệu trong MariaDB Connector/J 1. 2. 0 tài xế 3. 0 là bản viết lại hoàn chỉnh của trình kết nối. Hỗ trợ cụ thể cho cực quang chưa được triển khai trong 3. 0, vì nó dựa trên đường ống dẫn. Aurora không tương thích với đường ống. Các vấn đề đối với Aurora ngày càng chồng chất mà cộng đồng không đề xuất bất kỳ PR nào cho chúng và không có quyền truy cập để chúng tôi kiểm tra những sửa đổi đó. (2. x có hỗ trợ 5 năm) Xem mô tả chuyển đổi dự phòng để biết thêm thông tin Tham số URL tùy chọnNhật xét chung. Các tùy chọn không xác định được chấp nhận và âm thầm bỏ qua Các tùy chọn sau hiện đang được hỗ trợ thông số cần thiếtThông số TLSthêm thông tin về Sử dụng TLS/SSL với trình kết nối java MariaDB Tham số hồ bơiXem tài liệu nhóm để biết cấu hình nhóm Các thông số ít được sử dụngtùy chọn đã xóaGhi chú triển khai API JDBCGiải pháp tốt nhất là luôn có máy khách và máy chủ chia sẻ cùng một múi giờ Nếu không phải như vậy, một số tùy chọn cho phép sửa hành vi đó. Trong 2. x, có 2 tùy chọn `useLegacyDatetimeCode` và `serverTimezone` kiểm soát chênh lệch múi giờ. Các tùy chọn đó hiện đã bị xóa trong 3. x, vì chúng không tuân thủ tốt chức năng thời gian kể từ 3. 0. 0, tùy chọn mới 'múi giờ' cho phép xử lý sự khác biệt về múi giờ Tùy chọn `múi giờ` có thể có 3 loại giá trị
thí dụ
Giá trị được đề xuất là đặt múi giờ thành 'tự động'. Sau đó, trình kết nối sẽ biến kết nối múi giờ thành giá trị `múi giờ` khi tạo kết nối. Điều này cho phép sử dụng an toàn chức năng thời gian của máy chủ. Nếu máy khách sử dụng múi giờ IANA, máy chủ có thể phải tải thông tin về múi giờ, xem mysql_tzinfo_to_sql và các múi giờ, và những múi giờ đó không được điền theo mặc định "TẢI DỮ LIỆU VÀO TẬP TIN"LOAD DATA INFILE là cách nhanh nhất để tải dữ liệu. Kể từ MariaDB 10. 2, bây giờ cách nhanh nhất là thực thi JDBC chuẩn() khi tùy chọn 'useBulkStmts' được bật Cách nhanh nhất để tải nhiều dữ liệu là sử dụng LOAD DATA INFILE. Một tùy chọn cụ thể "allowLocalInfile" (mặc định là true) có thể tắt chức năng này ở phía máy khách. Biến toàn cục local_infile có thể tắt LOAD DATA LOCAL INFILE ở phía máy chủ Trình điều khiển tuân theo các thông số kỹ thuật của JDBC, cho phép Tuyên bố. setQueryTimeout() cho một câu lệnh cụ thể Nếu mục tiêu là đặt thời gian chờ cho tất cả các truy vấn, vì MariaDB 10. 1. 1, máy chủ cho phép giới hạn thời gian truy vấn bằng cách đặt biến hệ thống max_statement_time Giải pháp này sẽ xử lý thời gian chờ truy vấn tốt hơn (và nhanh hơn) so với các giải pháp java (JPA2, "javax. kiên trì. truy vấn. timeout", giải pháp tích hợp Pools như tomcat jdbc-pool "queryTimeout". ) Tùy chọn "sessionVariables" cho phép dễ dàng đặt biến hệ thống này. Thí dụ final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);0 Bộ kết quả truyền trực tuyếnTheo mặc định, final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);08 sẽ đọc toàn bộ kết quả từ máy chủ. Với các tập kết quả lớn, điều này sẽ yêu cầu dung lượng bộ nhớ lớn Để tránh sử dụng quá nhiều bộ nhớ, hãy sử dụng Statement. setFetchSize(int numberOfRowInMemory) để cho biết số hàng sẽ được lưu trữ trong bộ nhớ final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);09 cho biết 1000 hàng sẽ được lưu trữ trong bộ nhớ. Vì vậy, khi truy vấn được thực thi, 1000 hàng sẽ nằm trong bộ nhớ. Sau 1000 final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);00, 1000 hàng tiếp theo sẽ được lưu trong bộ nhớ, v.v. Lưu ý rằng máy chủ thường mong đợi máy khách đọc tập kết quả tương đối nhanh. Biến máy chủ net_write_timeout kiểm soát hành vi này (mặc định là 60 giây). Nếu bạn không mong đợi kết quả sẽ được xử lý trong khoảng thời gian này thì có một khả năng khác
Ngay cả khi sử dụng setFetchSize, máy chủ sẽ gửi tất cả kết quả cho máy khách Nếu một truy vấn khác được thực hiện trên cùng một kết nối khi tập kết quả phát trực tuyến chưa được đọc đầy đủ, trình kết nối sẽ đặt toàn bộ tập kết quả phát trực tuyến còn lại vào bộ nhớ để thực hiện truy vấn tiếp theo. Điều này có thể dẫn đến OutOfMemoryError nếu không được xử lý Trước phiên bản 1. 4. 0, giá trị duy nhất được chấp nhận cho kích thước tìm nạp là final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);01 (tương đương với final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);02). Giá trị này vẫn được chấp nhận vì lý do tương thích nhưng nên sử dụng final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);02, vì theo JDBC, giá trị phải >= 0 báo cáo chuẩn bịTrình điều khiển sử dụng các câu lệnh do máy chủ chuẩn bị làm tiêu chuẩn để giao tiếp với cơ sở dữ liệu (kể từ 1. 3. 0). Nếu tùy chọn "allowMultiQueries" được đặt thành true, trình điều khiển sẽ chỉ sử dụng giao thức văn bản. Các câu lệnh đã chuẩn bị (thay thế tham số) được xử lý bởi trình điều khiển, ở phía máy khách CallableStatementViệc triển khai câu lệnh có thể gọi được sẽ không cần truy cập siêu dữ liệu thủ tục được lưu trữ (mysql. proc) nếu cả hai điều sau đều đúng
Khi có thể, tuân theo hai quy tắc trên sẽ cung cấp cả tốc độ tốt hơn và loại bỏ những lo ngại về đặc quyền CHỌN trên mysql. bảng proc Giới hạn khóa được tạoJava cho phép truy xuất các khóa được tạo lần cuối, sử dụng Tuyên bố. getGeneratedKeys() Thí dụ final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);7 Chỉ khóa được tạo đầu tiên sẽ được trả về, nghĩa là đối với nhiều lần chèn, khóa được tạo được truy xuất sẽ tương ứng với giá trị được tạo đầu tiên của lệnh Nếu cần truy xuất tất cả các giá trị được tạo cho nhiều lần chèn, vui lòng sử dụng INSERT. Lệnh TRỞ LẠI (kể từ MariaDB 10. 5) Các lớp JDBC tùy chọnCác giao diện tùy chọn sau được triển khai bởi tổ chức. mariadb. jdbc. Lớp MariaDbDataSource. javax. sql. Nguồn dữ liệu, javax. sql. Kết nốiPoolDataSource, javax. sql. Nguồn dữ liệu XA cẩn thận. tổ chức. mariadb. jdbc. MySQLDataSource không còn tồn tại nữa và nên được thay thế bằng org. mariadb. jdbc. MariaDbDataSource kể từ v1. 3. 0 Ví dụ sử dụngĐoạn mã sau cung cấp một ví dụ cơ bản về cách kết nối với máy chủ MariaDB hoặc MySQL và tạo bảng Tạo Bảng trên Máy chủ MariaDB hoặc MySQLfinal HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);8 Dịch vụTài xế thực hiện 3 loại dịch vụ
Dịch vụ xác thựcThông tin đăng nhập thường được đặt bằng người dùng/mật khẩu trong chuỗi kết nối hoặc bằng cách sử dụng DriverManager. getConnection(Chuỗi url, Người dùng chuỗi, Mật khẩu chuỗi) Plugin xác thực cho phép cung cấp thông tin xác thực từ các phương tiện khác. Các plugin đó phải được kích hoạt tùy chọn cài đặt `credentialType` cho plugin được chỉ định Trình điều khiển có 3 plugin mặc định IAM AWSĐiều này cho phép xác thực IAM cơ sở dữ liệu AWS. Plugin tạo mã thông báo bằng thông tin xác thực IAM và khu vực. Mã thông báo có giá trị trong 15 phút và được lưu trong bộ nhớ cache trong 10 phút Để sử dụng xác thực thông tin xác thực này, com. amazonaws. phần phụ thuộc aws-java-sdk-rds phải được đăng ký trong đường dẫn lớp. Triển khai sử dụng SDK DefaultAWSCredentialsProviderChain và DefaultAwsRegionProviderChain để nhận thông tin xác thực IAM và khu vực. xem DefaultAWSCredentialsProviderChain và DefaultAwsRegionProviderChain để kiểm tra cách truy xuất những thông tin đó (biến môi trường/thuộc tính hệ thống, tệp,. ) Thí dụ. final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);04 với bộ biến môi trường AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY và AWS_REGION Môi trườngNgười dùng và Mật khẩu được lấy từ các biến môi trường. các biến môi trường mặc định là MARIADB_USER và MARIADB_PWD, nhưng có thể thay đổi bằng cách đặt tùy chọn bổ sung `userKey` và `pwdKey` Thí dụ. sử dụng chuỗi kết nối final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);05 người dùng và mật khẩu sẽ được truy xuất từ biến môi trường MARIADB_USER và MARIADB_PWD Tài sảnNgười dùng và Mật khẩu được lấy từ thuộc tính java. tên thuộc tính mặc định là mariadb. người dùng và mariadb. pwd, nhưng có thể thay đổi tên thuộc tính bằng cách đặt tùy chọn bổ sung `userKey` và `pwdKey` Thí dụ. sử dụng chuỗi kết nối final HikariDataSource ds = new HikariDataSource(); ds.setMaximumPoolSize(20); ds.setDriverClassName("org.mariadb.jdbc.Driver"); ds.setJdbcUrl("jdbc:mariadb://localhost:3306/db"); ds.addDataSourceProperty("user", "root"); ds.addDataSourceProperty("password", "myPassword"); ds.setAutoCommit(false);06 người dùng và mật khẩu sẽ được truy xuất từ các thuộc tính java `mariadbUser` và `mariadbPwd` Các plugin xác thực ứng dụng khách hiện được định nghĩa là dịch vụ. Điều này cho phép dễ dàng thêm các plugin xác thực ứng dụng khách mới Danh sách các plugin xác thực trong trình kết nối java
Các plugin xác thực mới có thể được tạo giao diện triển khai tổ chức. mariadb. jdbc. xác thực. AuthenticationPlugin và liệt kê plugin mới trong META-INF/services/org. mariadb. jdbc. xác thực. Tệp plugin xác thực Dịch vụ nhà máy SSLTriển khai SSL tùy chỉnh có thể được sử dụng khi triển khai Kết nối với máy chủ ban đầu tạo một ổ cắm. Khi được đặt, ổ cắm SSL được xếp lớp trên ổ cắm hiện có này. tổ chức triển khai. mariadb. jdbc. tls. TlsSocketPlugin cho phép cung cấp triển khai SSL tùy chỉnh, chẳng hạn như tạo triển khai HostnameVerifier mới Triển khai tùy chỉnh cần triển khai tổ chức. mariadb. jdbc. tls. TlsSocketPlugin và dịch vụ đăng ký META-INF/services/org. mariadb. jdbc. tls. TlsSocketPlugin Triển khai tùy chỉnh được kích hoạt bằng tùy chọn `tlsSocketType` Ghi nhật ký dễ sử dụngTrong Trình kết nối MariaDB/J 3. 0, ghi nhật ký hiện có thể được bật khi chạy. Trình kết nối/J sử dụng API slf4j nếu được cài đặt. Mặt khác, Trình kết nối/J sử dụng trình ghi nhật ký/bảng điều khiển JDK tên logger là "org. mariadb. jdbc" Trình kết nối/J hỗ trợ các mức ghi nhật ký Java sau Cẩn thận với cấp độ "trace", mục đích là ghi lại tất cả các trao đổi với máy chủ. Điều này có nghĩa là lượng dữ liệu khổng lồ. Cấu hình không hợp lệ có thể dẫn đến sự cố, chẳng hạn như làm đầy đĩa nhanh chóng Ví dụ về định cấu hình cấp độ "dấu vết" trên trình điều khiển để đăng nhập lại. đăng nhập lại tập tin. xml trong src/main/resource/ Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=myPassword");2 Ví dụ về nhật ký được tạo Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=myPassword");3 Tích hợp liên tục và kiểm thử tự độngĐể biết kết quả kiểm tra tự động và tích hợp liên tục của MariaDB Connector/J, vui lòng xem Travis CI của MariaDB Connector/J báo lỗiNếu bạn tìm thấy lỗi, vui lòng báo cáo qua dự án CONJ trên trình theo dõi lỗi Jira của MariaDB Mã nguồnMã nguồn có sẵn tại kho lưu trữ mariadb-connector-j trên GitHub Giấy phépGNU Lesser General Public License do Tổ chức Phần mềm Tự do xuất bản; . 1 của Giấy phép hoặc (tùy chọn của bạn) bất kỳ phiên bản mới hơn nào Đối với các câu hỏi về cấp phép, hãy xem Câu hỏi thường gặp về cấp phép F. A. QLỗi "Không thể đọc tập kết quả. kết thúc luồng không mong muốn, đọc 0 byte từ 4"Có một vấn đề giao tiếp với máy chủ Hầu hết trường hợp này xảy ra do đọc một truy vấn có tập kết quả lớn; . Biến máy chủ net_write_timeout kiểm soát hành vi này (mặc định là 60 giây). Nếu máy khách không đọc toàn bộ tập kết quả trong khoảng thời gian đó, máy chủ sẽ hủy kết nối. Nếu bạn không mong đợi kết quả sẽ được xử lý trong khoảng thời gian này thì có một khả năng khác
Cách thực hiện Ping nhẹ / Tránh hàng loạt "chọn 1"Sự liên quan. isValid() là một cách tiếp cận tốt. Sự liên quan. isValid() đang thực hiện ping (ping trong giao thức mysql, không phải ping mạng). Nhóm kết nối sử dụng Xác thực JDBC4 đang tự động sử dụng Kết nối này. isValid() Phiên bản mới nhất của MySQL Connector Java là gì?31 (2022-10-11, Sẵn có chung) Phiên bản 8. 0. 31 là bản phát hành Tính khả dụng chung mới nhất của 8. 0 loạt Trình kết nối MySQL/J.
Trình kết nối MySQL trong Java là gì?MySQL Connector/J là trình điều khiển JDBC Type 4 , triển khai JDBC 4. 2 đặc điểm kỹ thuật. Chỉ định Loại 4 có nghĩa là trình điều khiển là một triển khai Java thuần túy của giao thức MySQL và không dựa vào các thư viện máy khách MySQL.
MySQL có thể kết nối với Java không?Trong Java, chúng ta có thể kết nối với cơ sở dữ liệu (MySQL) của mình bằng JDBC (Kết nối cơ sở dữ liệu Java) thông qua mã Java . JDBC là một trong những API tiêu chuẩn để kết nối cơ sở dữ liệu, sử dụng nó, chúng ta có thể dễ dàng chạy truy vấn, câu lệnh và cũng có thể tìm nạp dữ liệu từ cơ sở dữ liệu.
Trình kết nối MySQL tiêu chuẩn là gì?The API MySQL C
. libmysqlclient được bao gồm trong các bản phân phối của MySQL. Xem thêm Triển khai API MySQL C. |