ข้อผิดพลาด java.sql.SQLException: No suitable driver found เกิดขึ้นเมื่อ JDBC URL ที่ใช้ไม่ถูกต้องหรือไม่ได้รับการยอมรับจาก JDBC driver ที่โหลดไว้ โดยเฉพาะเมื่อใช้ MySQL ต้องระบุ URL ให้ถูกต้องตามรูปแบบที่ driver รองรับ
รูปแบบ JDBC URL สำหรับ MySQL ที่ถูกต้อง
jdbc:mysql://localhost:3306/database_name?useSSL=false
โดยมีองค์ประกอบดังนี้:
jdbc:mysql://- โปรโตคอลสำหรับ MySQLlocalhost:3306- โฮสต์และพอร์ต (3306 เป็นพอร์ตเริ่มต้นของ MySQL)database_name- ชื่อฐานข้อมูลที่ต้องการเชื่อมต่อ?useSSL=false- ปิดการใช้ SSL (สำหรับการพัฒนาในเครื่อง lokal)
ตัวอย่างโค้ด Java สำหรับเชื่อมต่อฐานข้อมูล
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseConnection {
public static void main(String[] args) {
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/sample?useSSL=false",
"root",
"123456"
);
System.out.println("Connection is successful !!!!!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
ข้อสังเกตสำคัญ
- ต้องเพิ่ม MySQL Connector/J (JDBC driver) ใน classpath ของโปรเจกต์
- ตรวจสอบให้แน่ใจว่า MySQL server กำลังทำงานอยู่ที่พอร์ต 3306
- ชื่อผู้ใช้และรหัสผ่านต้องถูกต้องและมีสิทธิ์เข้าถึงฐานข้อมูล
- หากใช้ MySQL 8.0+ อาจต้องเพิ่มพารามิเตอร์
allowPublicKeyRetrieval=trueด้วย
เมื่อรันโค้ดและเชื่อมต่อสำเร็จ จะแสดงข้อความ "Connection is successful !!!!!" บนคอนโซล