Java Connect to MySQL Database (JDBC) |
Java Connect to MySQL Database (JDBC) บทความนี้จะเป็นเนื้อหาเกี่ยวกับการเขียนโปรแกรมด้วยภาษา Java เพื่อติดต่อกับฐานข้อมูลของ MySQL Database การเรียกใช้งาน รูปแบบการเชื่อมต่อ วิธีการต่าง ๆ ว่าถ้าจะใช้ MySQL Database บนภาษา Java นั้นเราจะต้องทำอย่างไรบ้าง ซึ่งปกติแล้วในภาษา Java จะมี Package หรือ Class Library ที่ใช้ติดต่อกับ Database ที่มีชื่อว่า JdbcOdbcDriver (sun.jdbc.odbc.JdbcOdbcDriver) รองรับทุก Database โดย Class นี้จะมีมากับ Package ของ JDK โดยไม่ต้องไปหามาติดตั้งเพิ่ม แต่จะรองรับการทำงานบน Windows ในรูปแบบของ ODBC เท่านั้น เพียงแต่ใน Windows จะต้องมี Driver ของ Database นั้น ๆ มารองรับก็สามารถที่จะเรียกใช้งานได้ทันที
Java and JDBC/ODBC/JdbcOdbcDriver (รองรับทุก Database เชื่อมต่อผ่าน ODBC)
แต่เราจะเลือกใช้ com.mysql.jdbc.Driver เป็น Connector Package ที่สร้างเพื่อ MySQL โดยเฉพาะ และรองรับการทำงานได้ทุก Platform
Java and MySQL
ในการใช้ Java ติดต่อกับฐานข้อมูลของ MySQL สามารถใช้ JdbcOdbcDriver ซึ่งจะมี Package มาพร้อมกับ JDK ได้ทันที แต่ในบทความนี้ จะเลือกใช้ Package ของ com.mysql.jdbc.Driver ซึ่งเป็น Connector Package ที่ได้ถูกออกแบบมาไว้สำหรับฐานข้อมูลของ MySQL โดยเฉพาะ สามารถ Download ได้ที่เว็บไซต์ของ MySQL ได้โดยตรง และรองรับการทำงานได้ทุก Platform เช่น Windows , Linux , Mac OS
Error กรณีไม่มี Package Connector ของ MySQL
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.java.myapp.MyClass.main(MyClass.java:11)
Download Connector/J
หลังจากที่ Download แล้วจะได้เป็น Package แล้วให้ทำการ Install ให้เรียบร้อย แล้วหาไฟล์ jar โดยปกติจะเก็บไว้ที่ C:\Program Files\MySQL\MySQL Connector J
Copy มาไว้ที่โฟเดอร์ lib ของ Project
กลับมาที่ Project บน Eclipse ให้ทำการ Refresh ตัว Project ซะ 1 ครั้ง เราจะเห็น Library ของ jar ที่เป็น Connector ของ MySQL ดังรูป
ให้คลิกวาที่ Project เลือก Properties
ในส่วนของ Java Build Path ให้เลือก Add JARs...
เลือก Package ไฟล์ jar ที่เป็น Connector ของ MySQL
Library ได้ถูก Add เข้ามาใน Project แล้ว ซึ่งตอนนี้เราจะสามารถเรียกใช้งานได้ตามปกติ
เริ่มต้นการเขียน Java กับ MySQL Database
เริ่มต้นด้วยเรียกใช้ Class ของ com.mysql.jdbc.Driver
Class.forName("com.mysql.jdbc.Driver");
Connection String
jdbc:mysql://server/databasename?user=root&password=password
ตัวอย่าง Table และ Data
CREATE TABLE `customer` (
`CustomerID` varchar(4) NOT NULL,
`Name` varchar(50) NOT NULL,
`Email` varchar(50) NOT NULL,
`CountryCode` varchar(2) NOT NULL,
`Budget` double NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`CustomerID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- dump ตาราง `customer`
--
INSERT INTO `customer` VALUES ('C001', 'Win Weerachai', '[email protected]', 'TH', 1000000, 600000);
INSERT INTO `customer` VALUES ('C002', 'John Smith', '[email protected]', 'UK', 2000000, 800000);
INSERT INTO `customer` VALUES ('C003', 'Jame Born', '[email protected]', 'US', 3000000, 600000);
INSERT INTO `customer` VALUES ('C004', 'Chalee Angel', '[email protected]', 'US', 4000000, 100000);
ตัวอย่าง Database ที่ใช้ทดสอบ
ชื่อตารางว่า customer จัดเก็บข้อมูลดังรูป
Example การเขียน Java เพื่อติดต่อกับ Database ของ MySQL
MyClass.java
package com.java.myapp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MyClass {
public static void main(String[] args) {
Connection connect = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
if(connect != null){
System.out.println("Database Connected.");
} else {
System.out.println("Database Connect Failed.");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Close
try {
if(connect != null){
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
Database Connected.
สำหรับการเขียน Java เพื่อกระทำกับข้อมูลของ MySQL เช่น การ อ่านข้อมูล (Read) การบันทึกข้อมูล (Add/Insert) การแก้ไขข้อมูล (Edit/Update) การลบข้อมูล (Delete) สามารถอ่านได้จากหัวข้อถัดไป
|