JDBC คืออะไร

Download Report

Transcript JDBC คืออะไร

การอบรมหลักสูตรการพัฒนา Web Application ด้วย Java
Java Programming Part IV
• Java Servlets
• JDBC (Java Database Connectivity)
Java Servlets
• An Introduction to Servlets
–
–
–
–
–
Servlets คืออะไร ?
การรับส่ งข้ อมูลโดยใช้ เว็บ
URL และ URI
การรับส่ งข้ อมูลระหว่ างเว็บและ Servlet
รูปแบบโครงสร้ างของ Servlet
– Servlet Architecture Overview HTTP servlets
– Servlet Life Cycle
• How to Write a servlet
– Interacting with Clients
Servlets คืออะไร ?
• Servlet คือเทคโนโลยี ที่เกิดขึ ้นมาจาก Java เพื่อใช้ งานทางด้ านการสร้ าง
โปรแกรมในรูปแบบ CGI สาหรับทางานบนเว็บเซิร์ฟเวอร์ เพื่อให้ ผลการแสดง
เว็บสูผ่ ้ อู า่ น มีการเปลี่ยนแปลงตามการใช้ งาน ซึง่ เป็ นเทคโนโลยีที่สืบ
เนื่องมาจากเหตุผลดังนี ้
- ความต้ องการให้ หน้ าเว็บเปลี่ยนตามข้ อมูลที่ผ้ อู า่ นส่งให้
- ความต้ องการให้ หน้ าเว็บเปลี่ยนตามข้ อมูลที่มีการเปลี่ยนแปลงบ่อยครัง้
- ความต้ องการให้ หน้ าเว็บเปลี่ยนตามระบบฐานข้ อมูล
การรับส่ งข้อมูลโดยใช้เว็บ
การรับส่ งข้อมูลโดยใช้เว็บ ผ่านทางแท็กฟอร์ ม <FORM ...> มีรูปแบบการส่ งอยู่
2 ลักษณะคือ GET และ POST โดยที่การส่ งแบบ GET เป็ นรู ปแบบการส่ งข้อมูล
ผ่านทาง URL ซึ่ งผูใ้ ช้อาจจะพิมพ์ได้เองโดยตรง เช่น
http://127.0.0.1?username=user1&pwd=1234
หรื อฟอร์ มที่แท็กกาหนดแอททริ บิวต์ METHOD เป็ น GET เช่น
<FORM NAME="LOGIN" METHOD="GET" >
สาหรับการส่ งข้อมูลผ่านฟอร์ มในแบบ POST คือการกาหนดแท็กฟอร์ มให้มี
แอททริ บิวต์ METHOD เป็ น POST เช่น
<FORM NAME="LOGIN" METHOD="POST" >
หมายเหตุ หากไมมี
่ การกาหนด METHOD ในฟอร์มโดย Default จะมีค่า
เป็ น GET
URL และ URI
• URL (Uniform Resource Locator) คือเส้นทางในการอ้างถึงแหล่งข้อมูลบน
อินเตอร์เน็ต URL จึงเป็ นข้อกาหนดที่สามารถเข้าถึงเอกสารที่ตอ้ งการได้
• URI (Uniform Resource Identifier) คือข้อมูลส่ วนหนึ่งของ URL ซึ่ งเป็ นกลุ่ม
ข้อมูลที่อยูต่ ่อท้ายจากชื่อเครื่ องปลายทางและหมายเลขพอร์ ต (หากระบุ) เพื่อ
ใช้สาหรับเป็ นข้อมูลดาเนินงานในส่ วนโปรแกรมที่อยูบ่ นเว็บเซิ ร์ฟเวอร์
ตัวอย่าง
เมื่อ URL คือ http://localhost:8080/servlet/HelloWorld
ดังนั้น URI คือ /servlet/HelloWorld
การรับส่ งข้อมูลระหว่างเว็บและ Servlet
• GET requests : รู ปแบบการส่ งข้อมูลผ่าน URL โดย Parameter1 และ Parameter2 คือชื่อ
พารามิเตอร์ที่ถูกเซิร์ฟเวอร์อา้ งถึงได้ ในขณะที่ Data1 และ Data2 คือข้อมูลที่อยูใ่ นพารามิเตอร์
แต่ละตัว หากต้องการส่ งข้อมูลมากกว่า 2 ตัว ก็จะเพิม่ ต่อท้ายไปได้เรื่ อยๆ เช่น
.../servlet/ViewCourse?Parameter1=Data1&Parameter2=Data2&Parameter3=D
ata3
• POST requests: เป็ นการส่ งด้วยโปรโตคอล HTTP ที่ใช้ในเว็บเป็ นตัวจัดการ การส่ งแบบนี้มี
ข้อดีที่ผอู้ ื่น ไม่สามารถล่วงรู ้ได้วา่ ลักษณะการส่ งข้อมูลไปใช้เซิ ร์ฟเวอร์ ส่ งข้อมูลอะไรไป และส่ ง
โดยการใช้พารามิเตอร์ชื่ออะไร การส่ งข้อมูลในแบบ POST ทาได้โดยการใช้ แท็ก FORM แต่
กาหนดวิธีการส่ งเป็ น POST
.../servlet/PlaceOrderProcess
รู ปแบบโครงสร้างของ Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletTemplate extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse
res)
throws ServletException, IOException {
PrintWriter out = res.getWriter();
}
}
Servlet Architecture Overview HTTP servlets
parameters, protocol, remote host,
ServerInputStream(binary data etc..)
Servlet
interface
ServletRequest
GET
doGet(ServletRequest req, ServletResponse res);
Servlet
ServletResponnse
Client
ServletRequest
POST
doPost(ServletRequest req, ServletResponse res);
Servlet
ServletResponse
mime type to reply,reply data,
ServletOutputStream
IS-A
Servlet Life Cycle
Server loads Servlets
- run init method
No Concurrency Issue
Server runs init only once, not per request
Servlets Accept Request from
Clients and return Data back
- run service method
service must be thread-safe
- multiple service method at a time
if that is impossible, servlet must
implement SingleThreadModel interface
Server removes Servlets
- run destroy method
Server reloads Servlets
- run init method
destroy must be thread-safe
- when server runs destroy, other threads
might be accessing shared resources
How to Write a servlet
คลาสที่จะสามารถทางานเป็ น Servlet ได้ตอ้ ง extends (สื บทอด) มา
จากคลาส javax.servlet.http.HttpServlet หากต้องการรับข้อมูลที่ส่งมาด้วย
รู ปแบบ GET ให้สร้างเมธรอดชื่อ doGet หรื อหากต้องการ รับข้อมูลที่ส่ง
มาด้วยรู ปแบบ POST ให้สร้างเมธรอดชื่อ doPost
ในเมธรอดต้องมีอาร์
กิวเม็นต์
2 ตัวคือ
HttpServletRequest สาหรับอ้างข้อมูลที่ส่งข้อมูลจากผูใ้ ช้ (จาก
ตัวอย่างอ้างด้วยตัวแปร req)
HttpServletResponse สาหรับส่ งข้อมูลกลับไปยังผูใ้ ช้ ทั้งที่เป็ น
ข้อมูล Header และส่ วนเนื้อความ (BODY) (จากตัวอย่างอ้างด้วยตัวแปร res)
How to Write a servlet
• เมื่อต้องการส่ งเนื้อความสู่ ผใู ้ ช้ มักจะส่ งไปให้คลาส PrintWriter จัดการอีกที
• คลาสดังกล่าวมีส่วนตรวจสอบข้อผิดพลาด หรื อ Exception Handling โดย
อาศัยคลาส ServletException และ IOException โดยตรวจจับในเมธรอด
• import ถูกใช้เพื่อเรี ยกใช้งานคลาสต่างๆ ในแพ็กเกจที่สนับสนุนการทางาน
Servlet ดังนี้
– import java.io.*
– import javax.servlet.*
– import javax.servlet.http.*
สาหรับคลาส PrintWriter
สาหรับคลาส HttpServlet
สาหรับคลาส HttpServletRequest และ
HttpServletResponse
First Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException, IOException {
//res.setContentType("text/html");
res.setContentType("text/html; charset=tis-620"); //Thai Lang.
PrintWriter out = res.getWriter();
out.println("<title>First Servlet</title>");
out.println("<H1>สวัสดี Servlet !</H1>");
}
}
JDBC (Java Database Connectivity)
• JDBC คืออะไร ?
• JDBC driver types
• การใช้ งาน JDBC
JDBC คืออะไร ?
• Java DataBase Connectivity หรื อ JDBC คือมิดเดิลแวร์ที่ถูกใช้บน
เทคโนโลยีจาวา ในการเข้าถึงระบบฐานข้อมูล โดยสามารถเรี ยกใช้
งานข้อมูล หรื อจัดการระบบฐานข้อมูลผ่าน คาสัง่ SQL-92 หรื อ
ภาษา SQL มาตรฐาน
JDBC driver types
• JDBC ซึ่งเป็ นมิดเดิลแวร์ตวั หนึ่ง มีรูปแบบและชื่อเรี ยกที่แบ่ง
ออกเป็ น 4 แบบด้วยกันคือ Type 1, Type 2, Type 3 และ Type
4 โดยเป็ นข้อกาหนดที่ถูกกาหนดมาโดยบริ ษทั ซัน ไมโครซิส
เท็มซ์ ซึ่งเป็ นผูก้ าหนดรายละเอียดของแต่ละประเภท ดังนี้
– Type1: JDBC-ODBC Bridge
– Type2: Partial Java Driver
– Type 3: Pure Java Driver
– Type 4: Direct-to-DB
Type1: JDBC-ODBC Bridge
• หมายถึง JDBC ที่ทางานอยูบ่ นชั้นการสื่ อสารมิดเดิลแวร์ทชี่ ื่อ ODBC อีกที
หนึ่ง เนื่องจากการทางานของคอมพิวเตอร์บนพื้นฐานของระบบปฏิบตั ิการ
ไมโครซอฟต์วินโดว์ส มีมิดเดิลแวร์ที่ชื่อ ODBC เป็ นมาตรฐานในการ
สื่ อสารอยูแ่ ล้ว และเนื่องมาจากระบบที่พฒั นาให้ใช้งานบนวินโดว์ส่วน
ใหญ่กม็ กั จะถูกพัฒนาโดยอาศัย ODBC มาช่วยในการทางานอยูด่ ว้ ย ดังนั้น
ในการสร้างโปรแกรมด้วยภาษาจาวาให้สามารถทางานอยูบ่ นพื้นฐาน
ODBC เดิม เพื่อหลีกเหลี่ยงปัญหาอันเกิดจากความยุง่ ยากในการติดตั้ง และ
ต้องแปลงระบบที่ใช้อยูไ่ ปเป็ นระบบใหม่ท้ งั หมด
ดังนั้นเมื่อมีการพัฒนาโปรแกรมด้วยภาษาจาวา โดยมีการใช้งาน
ระบบเดิมที่เรี ยกใช้ ODBC อยูแ่ ล้ว จึงนิยมที่จะพัฒนาโปรแกรมในรู ปแบบ
การใช้งาน JDBC ประเภทที่ 1
Type1: JDBC-ODBC Bridge
• ลักษณะของการนาไปใช้งาน
ถูกใช้สาหรับการศึกษาวิธีการเขียนโปรแกรมจาวา เพื่อติดต่อกับ JDBC
(ซึ่ งในหนังสื อจะมีการอ้างถึง JDBC ประเภทนี้ในตัวอย่าง)
เหมาะกับระบบงานที่มี ODBC ในการใช้งานอยูแ่ ล้ว
สาหรับระบบงานที่ท้ งั หมดทางานอยูบ่ นพื้นฐานของแพลตฟอร์ มวินโดว์
• ข้อด้อยของการนาไปใช้งาน
ไม่เหมาะกับการนาไปใช้งานบนระบบงานที่มีขนาดใหญ่ๆ เนื่องจากทา
ให้เกิดความช้าในการทางาน และประสิ ทธิ ภาพในการทางานที่ไม่ดี
มีขอ้ มูลในส่ วนโอเวอร์ เฮด(Overhead) สู ง เนื่องจากต้องมีส่วนในการ
ติดต่อระหว่าง JDBC และ ODBC เพิม่ เติม
ไม่สนับสนุนความสามารถทั้งหมดของมาตรฐาน JDBC เนื่องจาก
ข้อจากัดของ ODBC ที่มีรูปแบบการทางานน้อยกว่า JDBC
Type2: Partial Java Driver
• สาหรับ JDBC ประเภทนี้ ตัวไดรเวอร์ (มิดเดิลแวร์ของแต่ละผลิตภัณฑ์
มักจะใช้คาว่าไดร์เวอร์แทนมิดเดิลแวร์ตวั นั้นๆ) จะถูกโหลดไว้ที่ไคล
แอนท์ (Client) หรื อเทียร์ (Tier) ส่ วนติดต่อกับผูใ้ ช้
ดังนั้นรู ปแบบในการสร้างโปรแกรมไคลแอนท์จะต้องพยายามโหลด
ไดร์เวอร์ของผลิตภัณฑ์เซิร์ฟเวอร์ที่ตอ้ งการติดต่อด้วย เช่น ถ้ามีระบบ
ฐานข้อมูล Oracle โปรแกรมในส่ วนไคลแอนท์ตอ้ งสร้างคาสั่งในการ
โหลดไดร์เวอร์ Oracle ขึ้นใช้งาน ซึ่งแตกต่างกันในแต่ละระบบฐานข้อมูล
Type2: Partial Java Driver
• ลักษณะของการนาไปใช้งาน
 มีประสิ ทธิภาพในการดีกวาประเภท
1 (Type1) เมื่อ
่
เปรี ยบเทียบกัน
คาสั่ งในการติดตอกั
่ ี
่ บเซิรฟเวอร
์
์ จะเป็ นคาสั่ งทีด
ที่สุดสาหรับเซิ ร์ฟเวอร์ น้ นั ๆโดย เฉพาะ ทาการทางานโดยรวมดีกว่า
• ข้อด้อยของการนาไปใช้งาน
 ผู้ใช้โปรแกรมในส่วนไคลแอนทยั
้
์ งตองการไดร
์
เวอร์ สาหรับเซิ ร์ฟเวอร์โดย เฉพาะเมื่อมีการเปลี่ยนแปลงเซิ ร์ฟเวอร์ เป็ น
ผลิตภัณฑ์ตวั อื่น โปรแกรมในส่ วนไคลแอนท์ตอ้ งมีการเปลี่ยนแปลงและ
คอมไพล์ใหม่เสมอ
Type 3: Pure Java Driver
• ในการใช้งานสถาปัตยกรรมแบบ Multi-Tier ที่จาเป็ นต้องมีแอพปลิเคชัน่
เซิร์ฟเวอร์ทางานร่ วมอยูใ่ นระบบ แอพปลิเคชัน่ เซิร์ฟเวอร์จะมาลดข้อ
ยุง่ ยากในการติดตั้งหรื อดูแลระบบในส่ วนเทียร์ไคลแอนท์ ดังนั้นลักษณะ
ของ JDBC ในประเภทที่ 3 คือการนาเอา JDBC ไดร์เวอร์ไปวางไว้ที่ตวั
แอพปลิเคชัน่ เซิร์ฟเวอร์ เพื่อเป็ นตัวเชื่อมโยงการสื่ อสารไปหาเซิร์ฟเวอร์
Type 3: Pure Java Driver
• ลักษณะของการนาไปใช้งาน
เป็ นระบบที่มีประสิ ทธิ ภาพในการทางานที่ดีกว่าประเภทที่ 1 และ 2 เมื่อ
เปรี ยบเทียบกัน
เหมาะสาหรับองค์กรที่มีเซิ ร์ฟเวอร์ทางด้านฐานข้อมูลที่หลากหลายรู ปแบบ
การทางานของไคลแอนท์ไม่จาเป็ นต้องติดตั้ง JDBC ไดร์เวอร์ไว้ในทุกตัว
การติดตั้งและการดูแลระบบไคลแอนท์ทาได้ง่าย และสะดวก
• ข้อด้อยของการนาไปใช้งาน
ยังต้องการไดร์ เวอร์ สาหรับแต่ละผลิตภัณฑ์ เพื่อติดตั้งไว้ที่แอพปลิเคชัน่
เซิ ร์ฟเวอร์
Type 4: Direct-to-DB/Native Protocol
• ลักษณะการทางานของ JDBC ในประเภทที่ 4 มีการทางานโดยการส่ ง
คาสัง่ SQL จากไคลแอนท์ไปที่เซิร์ฟเวอร์ฐานข้อมูลโดยตรงผ่านระบบ
เครื อข่าย โดยที่รูปแบบคาสัง่ SQL จะต้องเป็ นไปตามข้อกาหนดของระบบ
ฐานข้อมูลแต่ละตัวที่เลือกใช้อยู่ ดังนั้นจะเห็นว่าการโต้ตอบของเซิร์ฟเวอร์
กับคาสัง่ SQL สามารถทางานได้รวดเร็ ว ทาให้ JDBC ประเภทนี้มีรูปแบบ
การทางานที่รวดเร็ ว แต่กจ็ าเป็ นต้องสร้างไคลแอนท์สาหรับฐานข้อมูลแต่
ละระบบซึ่งในบางครั้งไคลแอนท์สาหรับฐานข้อมูลตัวหนึ่งจึงไม่สามารถ
นาไปใช้กบั ระบบฐานข้อมูลตัวอื่นๆได้
Type 4: Direct-to-DB/Native Protocol
• ลักษณะของการนาไปใช้งาน
มีประสิ ทธิ ภาพในการทางานดีที่สุด เมื่อเทียบกับทุกประเภทที่กล่าวมา
• ข้อด้อยของการนาไปใช้งาน
มีความยุง่ ยากในการพัฒนาโปรแกรมเพื่อทางานในฝั่งไคลแอนท์ เพราะผูพ้ ฒั นา
ต้องเรี ยนรู ้การทางานของเซิ ร์ฟเวอร์ แต่ละตัวก่อน
Conceptual View
server
client
JDBC Driver Manager
JDBC-ODBC
Bridge
Partial Java
Driver
ODBC Driver
DB Client
Pure Java
Direct-to-DB
Driver
DB Server
DBMS
DBMS
DBMS
DBMS
Common Terms
การใช้งาน JDBC
Driver
Manager
Loads the driver, and manages connections.
Driver
Translates Java API calls into specific database operations.
Connection
Session between an application and a database.
Statement
An SQL statement or query.
ResultSet
Logical table returned by executing a statement.
Metadata
Information about returned data, the database and the driver.
การใช้งาน JDBC
การติดต่ อกับฐานข้ อมูล
1.1 ขั้นตอนการโหลดไดรเวอร์เพื่อใช้งาน
รู ปแบบ Class.forName ("Driver_Name")
ตัวอย่ าง
try {
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
System.err.print (e.getMessage ());
}
การใช้งาน JDBC
1.2 การติดต่อไปยังระบบฐานข้อมูล
รู ปแบบ
Connection Instance_Name = DriverManager.getConnection(URL, Login, Password)
รู ปแบบ URL
jdbc:<subprotocol>:<subname>
<subprotocol> คือโพรโตคอลการสื่ อสารข้อมูล เพื่อเจอจงไปยังเครื่ องหรื อระบบ
ปลายทาง ซึ่ งมีขอ้ มูลแตกต่างกันไปตามรู ปแบบการสื่ อสาร เช่น odbc สาหรับการสื่ อสาร
ผ่านระบบ ODBC
<subname> คือฐานข้อมูลภายในระบบที่อา้ งผ่าน subprotocol หรื อแหล่งข้อมูล
การใช้งาน JDBC
ตัวอย่ าง
try {
String URL = "jdbc:odbc:myDSN";
Connection con = DriverManager.getConnection
(URL,"myLogin","myPassword");
}catch (SQLException s) {
System.err.print (s.getMessage ());
}
การใช้งาน JDBC
การสร้ าง Statement / PreparedStatement
• Statement ใช้สาหรับสร้างคาสัง่ SQL ที่เป็ นข้อมูลคงที่ ไปยัง
ฐานข้อมูลและคืนผลลัพธ์กลับมา (ข้อมูลในคาสัง่ SQL ไม่
เปลี่ยนแปลง)
• PreparedStatement ใช้สาหรับสร้างคาสัง่ SQL ที่สามารถเปลี่ยนแปลง
ข้อมูลบางส่ วนภายในตามพารามิเตอร์ที่ตอ้ งการใช้งาน
ตัวอย่ าง
Code Fragment 1:
String updateString = "UPDATE COFFEES SET SALES = 75 " +
"WHERE COF_NAME LIKE 'Colombian' ";
stmt.executeUpdate(updateString);
Code Fragment 2:
PreparedStatement updateSales = con.prepareStatement(
"UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ? ");
updateSales.setInt(1, 75);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate()
การใช้งาน JDBC
การส่ งคาสั่ ง SQL ให้ กบั ฐานข้ อมูล
• เมธรอดที่ถูกกาหนดไว้สาหรับส่ งคาสัง่ SQL ไปให้กบั ฐานข้อมูล
ถูกแบ่งตามรู ปแบบคาสัง่ SQL ได้ 2 แบบ โดยผูใ้ ช้ตอ้ งเลือกเมธ
รอดที่เหมาะสมกับคาสัง่ SQL ที่ใช้งานคือ
– SQL เป็ นประเภทดาเนินการ ซึ่งสร้ างด้ วยคีย์เวิร์ดจาพวก CREATE,
ALTER, DROP, INSERT, UPDATE, DELETE ต้ องใช้ งานผ่ าน
เมธรอด ExecuteUpdate
– SQL เป็ นประเภทสื บค้ นข้ อมูล ผลลัพธ์ ทตี่ ้ องการกลับมา ในรู ปของกลุ่ม
ข้ อมูลเรคอร์ ด (Record Set) ต้ องเรียกใช้ งานผ่านเมธรอด ExecuteQuery
และต้ องมีคลาสมารับผลลัพธ์ ทไี่ ด้ รับกลับมาในรู ปแบบของกลุ่มเรคอร์ ด
คือคลาส ResultSet
การใช้งาน JDBC
การส่ งคาสั่ ง SQL ให้ กบั ฐานข้ อมูล (ต่ อ...)
• เมธรอดทั้งสองรู ปแบบดังกล่าว สามารถเรี ยกใช้งานได้จากคลาส
Statement และคลาส PreparedStatement อย่างใดอย่างหนึ่ง แต่ท้ งั
สองคลาสดังกล่าวใช้สาหรับการสร้างคาสัง่ SQL
ตัวอย่ าง
Connection con = DriverManager.getConnection ( url, "myLogin", "myPassword");
Statement stmt = con.createStatement();
stmt.executeUpdate("CREATE TABLE COFFEES " +
"(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " +
"SALES INTEGER, TOTAL INTEGER)");
Statement stmt = con.createStatement();
String query = "SELECT COF_NAME, PRICE FROM COFFEES";
ResultSet rs = stmt.executeQuery(query);
การใช้งาน JDBC
การแสดงผลลัพธ์
• ผลลัพธ์ในชุด ResultSet มีโครงสร้างคล้ายกับข้อมูลใน TABLE คือ
แบบออกเป็ นแนวแถวเรี ยกว่า Row (หรื อเรคอร์ด) และแนวคอลัมน์
เรี ยกว่า Column (หรื อฟิ ลด์) ดังนั้นหลักการดึงข้อมูลคือต้องระบุ
row ให้ชดั เจนก่อนแล้วจึงค่อยระบุ column ที่ตอ้ งการ
ตัวอย่ าง
Statement stmt = con.createStatement();
String query = "SELECT COF_NAME, PRICE FROM COFFEES";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString("COF_NAME");
float n = rs.getFloat("PRICE");
System.out.println(s + " " + n);
}
Output :
Colombian 7.99
French_Roast 8.99
Espresso 9.99
Colombian_Decaf 8.99
French_Roast_Decaf 9.99
การใช้งาน JDBC
การปิ ดการติดต่ อกับฐานข้ อมูล
• คือการปิ ดการใช้งาน Instance ที่ใช้สร้าง ResultSet ,Statement และ
Connection
• ใช้งานผ่านเมธรอด close()
ตัวอย่าง
rs.close();
stmt.close();
con.close();
สรุ ปการใช้งาน JDBC
 import java.sql.*
 load the driver
 create a Connection object
 create a Statement/PreparedStatement object
 execute a query
 get data from the ResultSet object
 close the objects