Java Connect to Oracle Database (JDBC) |
Java Connect to Oracle Database (JDBC) บทความนี้จะเป็นเนื้อหาเกี่ยวกับการเขียนโปรแกรมด้วยภาษา Java เพื่อติดต่อกับฐานข้อมูลของ Oracle Database การเรียกใช้งาน รูปแบบการเชื่อมต่อ วิธีการต่าง ๆ ว่าถ้าจะใช้ Oracle Database บนภาษา Java นั้นเราจะต้องทำอย่างไรบ้าง ซึ่งปกติแล้วในภาษา Java จะมี Connector 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)
แต่เราจะเลือกใช้ oracle.jdbc.driver.OracleDriver เป็น Connector Package ที่สร้างเพื่อ Oracle Database โดยเฉพาะ และรองรับการทำงานได้ทุก Platform
Java and Oracle Database
ในการใช้ Java ติดต่อกับฐานข้อมูลของ Oracle สามารถใช้ JdbcOdbcDriver ซึ่งจะมี Package มาพร้อมกับ JDK ได้ทันที แต่ในบทความนี้ จะเลือกใช้ Package ของ oracle.jdbc.driver.OracleDriver ซึ่งเป็น Connector Package ที่ได้ถูกออกแบบมาไว้สำหรับฐานข้อมูลของ Oracle โดยเฉพาะ สามารถ Download ได้ที่เว็บไซต์ของ Oracle ได้โดยตรง และรองรับการทำงานได้ทุก Platform เช่น Windows , Linux , Mac OS
Error กรณีไม่มี Package Connector ของ Oracle
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
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)
JDBC Driver Downloads for Oracle Database
เลือก Version ที่ต้องการ
หลังจากที่ Download แล้วจะได้เป็น Package เป็นไฟล์ jar และจะต้องนำไป Import ในโปรแกรม Eclipse หรือ Netbeans ซะก่อน
Copy มาไว้ที่โฟเดอร์ lib ของ Project
กลับมาที่ Project บน Eclipse ให้ทำการ Refresh ตัว Project ซะ 1 ครั้ง เราจะเห็น Library ของ jar ที่เป็น Connector ของ Oracle Database ดังรูป
ให้คลิกวาที่ Project เลือก Properties
ในส่วนของ Java Build Path ให้เลือก Add JARs...
เลือก Package ไฟล์ jar ที่เป็น Connector ของ Oracle
Library ได้ถูก Add เข้ามาใน Project แล้ว ซึ่งตอนนี้เราจะสามารถเรียกใช้งานได้ตามปกติ
เริ่มต้นการเขียน Java กับ Oracle Database
เริ่มต้นด้วยเรียกใช้ Class ของ oracle.jdbc.driver.OracleDriver
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection String แบบ Thin Service Name
jdbc:oracle:thin:@//host:port/service_name เช่น jdbc:oracle:thin:@//localhost:1521/THAICREATE
Connection String แบบ Thin TNS Name
jdbc:oracle:thin:@TNSName เช่น jdbc:oracle:thin:@TCDB
Oracle Create TNS Name (Net Service)
ตัวอย่าง Table และ Data
create table customer
(
CUSTOMERID varchar2(4),
NAME varchar2(50),
EMAIL varchar2(50),
COUNTRYCODE varchar2(3),
BUDGET number,
USED number
)
tablespace SYSTEM
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table customer
add constraint PK_CUSTOMER primary key (CUSTOMERID);
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 ของ Oracle
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("oracle.jdbc.driver.OracleDriver");
connect = DriverManager.getConnection("" +
"jdbc:oracle:thin:@TCDB", "myuser","mypassword");
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();
}
try {
connect.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
Database Connected.
สำหรับการเขียน Java เพื่อกระทำกับข้อมูลของ Oracle เช่น การ อ่านข้อมูล (Read) การบันทึกข้อมูล (Add/Insert) การแก้ไขข้อมูล (Edit/Update) การลบข้อมูล (Delete) สามารถอ่านได้จากหัวข้อถัดไป
|