Java Connect to MariaDB (JDBC) |
Java Connect to MariaDB (JDBC) บทความนี้จะเป็นเนื้อหาเกี่ยวกับการเขียนโปรแกรมด้วยภาษา Java เพื่อติดต่อกับฐานข้อมูลของ MariaDB ซึ่งเป็นฐานข้อมูลที่จะมาแทนที่ MySQL Database การเรียกใช้งาน รูปแบบการเชื่อมต่อ วิธีการต่าง ๆ ว่าถ้าจะใช้ MariaDB บนภาษา 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)
แต่เราจะเลือกใช้ org.mariadb.jdbc.Driver เป็น Connector Package ที่สร้างเพื่อ MariaDB โดยเฉพาะ และรองรับการทำงานได้ทุก Platform
Java and MariaDB
ในการใช้ Java ติดต่อกับฐานข้อมูลของ MariaDB สามารถใช้ JdbcOdbcDriver ซึ่งจะมี Package มาพร้อมกับ JDK ได้ทันที แต่ในบทความนี้ จะเลือกใช้ Package ของ org.mariadb.jdbc.Driver ซึ่งเป็น Connector Package ที่ได้ถูกออกแบบมาไว้สำหรับฐานข้อมูลของ MariaDB โดยเฉพาะ สามารถ Download ได้ที่เว็บไซต์ของ MariaDB ได้โดยตรง และรองรับการทำงานได้ทุก Platform เช่น Windows , Linux , Mac OS
Error กรณีไม่มี Package Connector ของ MariaDB
java.lang.ClassNotFoundException: org.mariadb.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)
MariaDB Client Library for Java Application
เลือก Version ที่ต้องการ แนะนำให้เลือกเวอร์ชั่นที่เป็น Stable
หลังจากที่ Download แล้วจะได้เป็น Package เป็นไฟล์ jar และจะต้องนำไป Import ในโปรแกรม Eclipse หรือ Netbeans ซะก่อน
Copy มาไว้ที่โฟเดอร์ lib ของ Project
กลับมาที่ Project บน Eclipse ให้ทำการ Refresh ตัว Project ซะ 1 ครั้ง เราจะเห็น Library ของ jar ที่เป็น Connector ของ MariaDB ดังรูป
ให้คลิกวาที่ Project เลือก Properties
ในส่วนของ Java Build Path ให้เลือก Add JARs...
เลือก Package ไฟล์ jar ที่เป็น Connector ของ MariaDB
Library ได้ถูก Add เข้ามาใน Project แล้ว ซึ่งตอนนี้เราจะสามารถเรียกใช้งานได้ตามปกติ
เริ่มต้นการเขียน Java กับ MariaDB
เริ่มต้นด้วยเรียกใช้ Class ของ org.mariadb.jdbc.Driver
Class.forName("org.mariadb.jdbc.Driver");
Connection String
jdbc:mariadb://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 ของ MariaDB
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("org.mariadb.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mariadb://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 เพื่อกระทำกับข้อมูลของ MariaDB เช่น การ อ่านข้อมูล (Read) การบันทึกข้อมูล (Add/Insert) การแก้ไขข้อมูล (Edit/Update) การลบข้อมูล (Delete) สามารถอ่านได้จากหัวข้อถัดไป
|