Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

วิธีตั้งค่า Data Source ใน JSP ด้วย JSTL sql:setDataSource


แท็ก <sql:setDataSource> ใช้สำหรับตั้งค่าการเชื่อมต่อฐานข้อมูล (DataSource) ไว้ในตัวแปรการตั้งค่า หรือเก็บใน scoped variable เพื่อนำไปใช้กับแท็ก SQL อื่นๆ

แอตทริบิวต์ของ <sql:setDataSource>

แอตทริบิวต์ คำอธิบาย จำเป็น ค่าเริ่มต้น
driver ชื่อคลาส JDBC Driver ที่ต้องจดทะเบียน ไม่ None
url JDBC URL สำหรับเชื่อมต่อฐานข้อมูล ไม่ None
user ชื่อผู้ใช้ฐานข้อมูล ไม่ None
password รหัสผ่านฐานข้อมูล ไม่ None
dataSource DataSource ที่เตรียมไว้ล่วงหน้า (javax.sql.DataSource) ไม่ None
var ชื่อตัวแปรสำหรับอ้างอิง DataSource นี้ ไม่ Set default
scope ขอบเขตของตัวแปร (page, request, session, application) ไม่ Page

หมายเหตุ: ในตารางเดิมมี password ซ้ำ 2 แถว - แก้ไขแล้วในตารางนี้

ตัวอย่างการใช้งาน

<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="https://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<html>
<head>
<title>JSTL sql:setDataSource Tag</title>
</head>
<body>
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost/TEST"
    user="user_id" password="mypassword"/>
<sql:query dataSource="${snapshot}" sql="..." var="result" />
</body>
</html>

แนวทางปฏิบัติที่ดี (Best Practice)

  • ในระบบจริง ควรกำหนด DataSource ใน Container (เช่น Tomcat context.xml) และเรียกใช้ผ่าน JNDI
  • หลีกเลี่ยงการใส่รหัสผ่านตรงใน JSP ควรใช้การตั้งค่าภายนอก
  • ใช้แท็กนี้ครั้งเดียว แล้วนำตัวแปร var ไปใช้กับ sql:query, sql:update ต่อไป