การเชื่อมต่อฐานข้อมูล JSP
การเชื่อมต่อกับฐานข้อมูลใน JSP
ฐานข้อมูลใช้สำหรับจัดเก็บข้อมูลประเภทต่างๆ ที่มีขนาดใหญ่และมีความจุเป็นกิกะไบต์ JSP สามารถเชื่อมต่อกับฐานข้อมูลดังกล่าวเพื่อสร้างและจัดการบันทึก
ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับวิธีการสร้างตารางในฐานข้อมูล และวิธีการสร้างเรคคอร์ดในตารางเหล่านี้ผ่าน JSP
สร้างตาราง
In ฐานข้อมูล MySQLเราสามารถสร้างตารางในฐานข้อมูลโดยใช้ไคลเอนต์ MYSQL ได้ ที่นี่เราใช้ PHPMyadminclient และมีตัวเลือก "ใหม่" เพื่อสร้างตารางใหม่โดยใช้ภาพหน้าจอด้านล่าง
ในนี้ เราต้องระบุชื่อตารางเป็น guru_test และเราจะสร้างสอง field'emp_id และ emp_name
Emp_idis มีประเภทข้อมูลเป็น int
Emp_name มีประเภทข้อมูลเป็น varchar
ตัวเลือกอื่นคือใช้พรอมต์คำสั่งและเปลี่ยนแปลงไปยังไดเร็กทอรี MYSQL:
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
เราสามารถล็อกอินเข้าสู่ฐานข้อมูลได้ดังนี้:
C:\Program Files\MYSQL\bin>mysql –u gururoot –p Enter Password: ******* Mysql>
สร้างตาราง guru_test ในฐานข้อมูลชื่อ GuruTest ตามข้อความแจ้ง MYSQL ต่อไปนี้:
Mysql> use GuruTest; MySql> create table guru_test( Emp_idint NOT NULL, Emp_namevarchar(11), ); Once you execute this you get the following: Query OK, 0 rows affected(0.10 sec) MySQl> select * from guru_test; Query OK, 0 rows affected(0.10 sec)
ขั้นแรกให้บันทึกโดยใช้ INSERT
สอบถามแล้วเราก็สามารถใช้ได้ SELECT
แบบสอบถามเพื่อตรวจสอบว่าตารางถูกสร้างขึ้นหรือไม่
สร้างบันทึก
หลังจากสร้างตารางแล้ว เราจำเป็นต้องสร้างบันทึกลงในตาราง guru_test โดยใช้คำสั่งแทรก ซึ่งแสดงไว้ด้านล่าง:
บันทึกที่ป้อนที่นี่คือ:
- 1 และกูรู emp1
- 2 และกูรู emp2
MySql>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('1', 'guru emp1'); Query OK, 1 row affected (0.05 sec) MySQL>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('2', 'guru emp2'); Query OK, 1 row affected (0.05 sec)
JSP Operations: แทรก, อัพเดต, ลบ, เลือก
การใช้ JSP ช่วยให้เราดำเนินการต่างๆ ในฐานข้อมูลได้หลายอย่าง เช่น เพิ่มระเบียน และลบระเบียนที่ไม่จำเป็นได้ หากจำเป็นต้องแก้ไขระเบียนใด ก็สามารถอัปเดตได้ การดำเนินการ Select จะช่วยดึงระเบียนที่จำเป็นออกมา
เลือก
การดำเนินการเลือกใช้เพื่อเลือกระเบียนจากตาราง
ตัวอย่าง:
ในตัวอย่างนี้ เราจะเรียนรู้เกี่ยวกับการดำเนินการเลือกของการดึงข้อมูลจากตาราง guru_test ซึ่งสร้างขึ้นในหัวข้อข้างต้น
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <sql:query dataSource="${snapshot}" var="result"> SELECT * from guru_test; </sql:query> <table> <tr> <th>Guru ID</th> <th>Name</th> </tr> <c:forEach var="row" items="${result.rows}"> <tr> <td><c:out value="${row.emp_id}"/></td> <td><c:out value="${row.emp_name}"/></td> </tr> </c:forEach> </table> </body> </html>
คำอธิบายของรหัส:
รหัสบรรทัด 1: ที่นี่เรากำลังนำเข้า io, uti และ SQL ไลบรารี่ของจาวา
รหัสบรรทัด 3: ที่นี่เรากำลังนำเข้าไลบรารีหลักของ JSTL และให้คำนำหน้าเป็น gurucore ซึ่งจะช่วยให้ได้ผลลัพธ์
รหัสบรรทัด 4: เรากำลังนำเข้าไลบรารี SQL ของ jstl และใส่คำนำหน้าเป็น gurusql ซึ่งจะช่วยในการดำเนินการ SQL
รหัสบรรทัด 15-17: เมื่อใช้ gurusql เรากำลังเชื่อมต่อแหล่งข้อมูลโดยตั้งชื่อตัวแปรเป็น “guru” และไดรเวอร์เป็นไดรเวอร์ JDBC เพิ่มชื่อผู้ใช้และรหัสผ่านด้วย "gururoot" และ "guru"
รหัสบรรทัด 19-21: ที่นี่เราใช้แบบสอบถาม SQL ของแบบสอบถามแบบใช้เลือกข้อมูล
รหัสบรรทัด 31-32: เรากำลังพิมพ์เอาต์พุตสำหรับ emp id และชื่อ emp ซึ่งดึงมาจากผลลัพธ์ของการสืบค้น และใช้ foreach loop ที่เราพิมพ์เอาต์พุต
เมื่อคุณรันโค้ดข้างต้น เราจะได้ผลลัพธ์ดังนี้
Output:
ที่นี่ทั้งบันทึกจะถูกดึงมาจากฐานข้อมูล
1 กูรู em1
2 กูรู em2
สิ่งที่ใส่เข้าไป
ตัวดำเนินการแทรกใช้เพื่อแทรกระเบียนลงใน ฐานข้อมูล.
ตัวอย่าง:
ในตัวอย่างนี้ เราจะเรียนรู้เกี่ยวกับการแทรกระเบียนในตาราง guru_test
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurusql:update dataSource="${guru}" var="guruvar"> INSERT INTO guru_test VALUES (3, 'emp emp3'); </gurusql:update> </body> </html>
คำอธิบายของรหัส:
รหัสบรรทัด 19-20: ที่นี่เราจะแทรกระเบียนลงในตาราง guru_test ของ GuruTestdatabase ระเบียนที่แทรกคือ: empID – 3 และ empname – emp emp3 ระเบียนเหล่านี้จะถูกแทรกลงในตาราง เมื่อคุณรันโค้ด ระเบียนจะถูกแทรกลงในตารางเป็น guru_test โดยมีค่าเป็น 3 และ emp emp3
หมายเหตุ ที่นี่เราไม่ได้แสดงผลลัพธ์เนื่องจากเราเพียงแค่แทรกระเบียนลงในตาราง เราสามารถรับระเบียนได้โดยใช้คำสั่ง select query โดยเป็น 'select * from guru_test' หากแทรกระเบียนแล้ว เราจะได้ค่าเป็น 3 และ emp3 หากไม่แทรกระเบียนแล้ว จะไม่เห็น 3 ในระเบียนในตาราง
ลบ
นี่คือการดำเนินการลบข้อมูลโดยเราจะลบข้อมูลออกจากตาราง guru_test
ตัวอย่าง:
ที่นี่เราจะลบแบบสอบถามเพื่อลบบันทึกออกจากตาราง guru_test บันทึกที่ต้องลบจะต้องตั้งค่าในตัวแปร “guruid” และบันทึกที่เกี่ยวข้องจะถูกลบออกจากฐานข้อมูล
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="3"/> <gurusql:update dataSource="${guru}" var="guruvar"> DELETE FROM guru_test WHERE emp_id = ? <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
คำอธิบายของรหัส:
รหัสบรรทัด 18: เรากำลังตั้งค่าตัวแปร guruid ซึ่งมีค่าเป็น 3 ซึ่งจะต้องลบออกจากฐานข้อมูล นี่เป็นคีย์หลักของตารางเสมอ ในกรณีนี้ คีย์หลักคือ emp_id
รหัสบรรทัด 19-22: ที่นี่เราใช้คำสั่ง delete ซึ่งกำหนดพารามิเตอร์ในคำสั่ง where พารามิเตอร์นี้คือ guruid ซึ่งกำหนดไว้ในโค้ดบรรทัดที่ 18 บันทึกที่เกี่ยวข้องจะถูกลบ
Output:
เมื่อคุณรันโค้ดด้านบน บันทึกที่มี emp_id เป็น 3 จะถูกลบ
หมายเหตุ ในตัวอย่างนี้ เราไม่สามารถแสดงผลลัพธ์ได้เนื่องจากเรากำลังลบระเบียนออกจากตาราง หากต้องการตรวจสอบว่าระเบียนนั้นถูกลบหรือไม่ เราจำเป็นต้องใช้คิวรีแบบเลือก "select * from guru_test" ในกรณีนั้น หากเราได้รับ 3 เป็นรหัส emp แสดงว่าคิวรีการลบล้มเหลว มิฉะนั้น ระเบียนนั้นจะถูกลบสำเร็จ
บันทึก
การอัปเดตใช้เพื่อแก้ไขเรกคอร์ดในตาราง
ตัวอย่าง:
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="2"/> <gurusql:update dataSource="${guru}" var="guruvar"> UPDATE guru_test SET emp_name='emp guru99' <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
คำอธิบายของรหัส:
รหัสบรรทัด 18: ที่นี่เรากำลังตั้งค่าตัวแปร guruid เป็น 2 นี่คือ ID ที่เราต้องการอัปเดตบันทึก
รหัสบรรทัด 19-22: ที่นี่เราใช้แบบสอบถามแบบอัปเดตเพื่ออัปเดตบันทึกในตาราง guru_test ของบันทึกซึ่งตั้งค่าไว้ในจุดที่ 18 ที่นี่ emp guru2 ถูกแทนที่ด้วย emp guru99
Output:
เมื่อคุณรันโค้ดด้านบน บันทึก withemp_id 2 จะถูกเปลี่ยนเป็น 99 ดังนั้นตอนนี้ผลลัพธ์จะแสดงเป็น emp”guru99″ แทนที่จะเป็น emp “guru2”
สรุป
ในบทช่วยสอนนี้ เราได้เรียนรู้เกี่ยวกับการเชื่อมต่อ JSP กับฐานข้อมูลและการเข้าถึงฐานข้อมูล นอกจากนี้ เรายังได้เรียนรู้เกี่ยวกับการดำเนินการต่างๆ ที่ดำเนินการกับตารางในฐานข้อมูล เช่น การสร้าง การลบ การอัปเดต เป็นต้น