ตัวอย่างในบทความนี้อธิบายวิธีที่ Java ใช้ JSP เพื่อเชื่อมต่อกับฐานข้อมูล Oracle โดยใช้ Servelt ในการเชื่อมต่อกับฐานข้อมูลใน Servlet จะต้องเขียนโปรแกรมคลาส Servlet วางโปรแกรมคลาส Servlet ไว้ใต้ไดเร็กทอรี servlets หรือคลาสของเซิร์ฟเวอร์ WEB ในการเรียก Servlet คุณต้องสร้างเอกสาร HTML ที่ส่งคำขอ Servlet ในตัวอย่างนี้ ใช้เมธอด (Driver)Class.forName(driverName).newInstance() เพื่อโหลดไดรเวอร์และสร้างการเชื่อมต่อกับฐานข้อมูล
รหัสโปรแกรมเฉพาะคือ:
1. คลาสฐานข้อมูลสืบทอดคลาส HttpServlet และมีสองวิธี: doGet() และ displayResult() รหัสจะเป็นดังนี้:
ฐานข้อมูลคลาสสาธารณะขยาย HttpServlet {โมฆะสาธารณะ doGet (); โมฆะสาธารณะ displayResult (ผลลัพธ์ชุดผลลัพธ์, PrintWriter ออก);}
2. สร้างการเชื่อมต่อกับฐานข้อมูลและดำเนินการค้นหาในเมธอด doGet():
โมฆะสาธารณะ doGet(){คำขอ HttpServletRequest,HttpServletResponse response} พ่น ServletException, IOException{PrintWriter out;String title = "Simple Servlet ที่เชื่อมต่อกับ Oracle DB";response.setContentType("text/html;charset=GB2312");out = response.getWriter();out.println("<HTML><HEAD><TITLE>");out.println(title);out.println("</TITLE></HEAD><BODY>");ออก .println("<H1>" + title + "</H1>");out.println("<P>นี่คือเอาต์พุตจาก SimpleServlet.");String driverName = "oracle.jdbc.driver.OracleDriver";Driver d;การเชื่อมต่อ con;คำสั่ง stmt;ผลลัพธ์ชุดผลลัพธ์;try{d = (Driver)Class.forName(driverName).newInstance();con = DiverManager.getConnection("jdbc:oracle:thin:ndb/[email protected]:1521:PC6");stmt = con.createStatement();String sqlstr = "select * from data";results = stmt.executeQuery(sqlstr);displayResult(results,out);stmt.close();con.close();}catch (ข้อยกเว้น e){out.println("ข้อผิดพลาด: " + e.toString());} out.println("</BODY></HTML>");out.close();}
3. DisplayResult() วิธีการแสดงผลแบบสอบถาม:
โมฆะสาธารณะ displayResult (ผลลัพธ์ชุดผลลัพธ์, PrintWriter ออก) {StringBuffer buf = new StringBuffer (); String temp; ลอง {ResultSetMetaData rsmd = results.getMetaData();int numCols = rsmd.getColumnCount();int i, rowcount = 0;สำหรับ (i=1; i <= numCols; i++){if (i > 1) buf.append(",");buf.append(rsmd.getColumnLabel(i));}buf.append("");ในขณะที่ (results.next() && rowcount < 100){for (i= 1; i <= numCols; buf.append(",");buf.append((results.getString(i)));}buf.append("<br>");rowcount++;}out.println("<br>");ออก .println(buf.toString());results.close();}catch (ข้อยกเว้น e){out.println("ข้อผิดพลาด: " + e.toString());กลับ;}}
4. เนื่องจากโปรแกรมใช้คลาส JDBC คลาสเซิร์ฟเล็ต และใช้เอาต์พุตคอนโซล จึงต้องแนะนำแพ็กเกจต่อไปนี้:
นำเข้า java.sql.*;นำเข้า java.io.*;นำเข้า javax.servlet.*;นำเข้า javax.servlet.http.*;
5. คอมไพล์ Database.java สร้างไฟล์ Database.class และใส่ Database.class ในไดเร็กทอรีเซิร์ฟเล็ตของเว็บเซิร์ฟเวอร์ ในตัวอย่างนี้ Java Web Server ถูกใช้เป็นเว็บเซิร์ฟเวอร์ กำหนดค่าเว็บเซิร์ฟเวอร์ เพิ่ม Database.class และระบุชื่อเป็นฐานข้อมูล
6. เขียนไฟล์database.htmlที่เรียกServlet รหัสมีดังนี้:
<html><head><title>Jsp ใช้ Servlet เพื่อเชื่อมต่อกับฐานข้อมูล</title></head><body><center><form action="/servlet/database" method="get"><input name ="action " type="submit" value="เชื่อมต่อกับฐานข้อมูล"></form></center></body></html>