SlideShare una empresa de Scribd logo
1 de 34
1
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
รายงาน
เรื่อง การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา
JSP&SQL
เสนอ
อาจารย์ก่องกาญจน์ ดุลยไชย
จัดทำาโดย
1. นางสาวธารทิพย์ หนูทิมทอง
5404101342
2. นางสาวธิดาพร โตเอี่ยม
5404101343
3. นางสาวปวันรัตน์ สุทธิโชติวงศ์
5404101402
4. นางสาวสุกัลยา สุณาโท
5404101403
5. นางสาวสุรัสวดี ภาพเมืองมูล
5404101404
สาขาวิทยาการคอมพิวเตอร์ กลุ่มเรียนที่ 1
2
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
รายงานเล่มนี้เป็นส่วนหนึ่งของหลักการ
เขียนโปรแกรมบนอินเตอร์เน็ต(คพ 313)
ภาคเรียนที่ 1 ปีการศึกษา 2556
คณะวิทยาศาสตร์ มหาวิทยาลัยแม่โจ้
Database (ฐานข้อมูล)
คือระบบที่รวบรวมข้อมูลไว้ในที่เดียวกันซึ่งประกอบไปด้วยแฟ้ม
ข้อมูล (File) ระเบียน (Record) และเขตข้อมูล (Field) และถูกจัดการ
ด้วยระบบเดียวกันโปรแกรม
คอมพิวเตอร์จะเข้าไปดึงข้อมูลที่ต้องการได้อย่างรวดเร็ว ซึ่งอาจเปรียบ
ฐานข้อมูลเสมือนเป็น
electronic filing system
การเข้าถึงข้อมูลในฐานข้อมูลจึงจำาเป็นต้องมีระบบการจัดการฐาน
ข้อมูลมาช่วยเรียกว่า
Database management system (DBMS) ซึ่งจะช่วยให้ผู้ใช้
สามารถจัดการกับข้อมูลตามความ
ต้องการได้ในหน่วยงานใหญ่ๆ อาจมีฐานข้อมูลมากกว่า 1 ฐานข้อมูล
เช่นฐานข้อมูลบุคลากร
3
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
ฐานข้อมูลลูกค้าฐานข้อมูลสินค้าเป็นต้น
DAO (Data Access Objects)
เป็น application program interface (API)กับ Visual
Basic ของ Microsoft ที่ให้ผู้เขียนโปรแกรมขอเข้าถึงฐานข้อมูล
Microsoft Access ได้ DAO เป็นอินเตอร์เฟซแรกแบบ object-
oriented กับฐานข้อมูลของ เพื่อให้ programmer สามารถเข้าใช้
งาน database ประเภทต่างๆ ได้โดยง่าย
JavaBean
ในการเขียน JSP สำาหรับระบบใหญ่ๆ ส่วนใหญ่จะไม่นิยมใส่
java code ลงไปในไฟล์ JSP สิ่งที่ อยู่ในไฟล์มักจะเป็นเพียง HTML
code และค่าของ variables(data) ต่างๆ ที่ได้มาจาก JavaBeans
เท่านั้น
ข้อดีของ การใช้ JavaBean
- สามารถทำางานได้บนทุกๆ ระบบปฏิบัติการ โดยที่ไม่ต้องทำาการ
Compile ใหม่ทุกครั้ง
- มีการ load ลงหน่วยความจำาเพียงครั้งเดียวจนกว่าจะมีการเลิกใช้งาน
โปรแกรม
- สามารถนำา Component ที่เขียนมาแล้ว กลับมาใช้ใหม่ได้อีก
4
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
- สามารถนำาความรู้ที่ใช้ในภาษา Java มาใช้ในการเขียนโปรแกรม
ร่วมด้วยได้
JSP & Servlet
JavaServer Pages (JSP) เป็นเทคโนโลยีการเขียนโปรแกรมฝั่ง
เซิร์ฟเวอร์ที่ช่วยให้การสร้างหน้าเว็บแบบไดนามิกและการประยุกต์ใช้
ซึ่งทำาได้โดยการฝังรหัส Java เป็น HTML, XML, DHTML, หรือ
ประเภทเอกสารอื่น ๆ เมื่อเว็บเบราว์เซอร์ทำาให้คำาขอไปยังที่เก็บ
โปรแกรม Java ซึ่งตามปกติจะเป็นเว็บเซิร์ฟเวอร์, หน้าคงถูกแปลงอยู่
เบื้องหลังและ แสดงเป็นเนื้อหาแบบไดนามิกกับตัว JSP
Servlets เป็น Componet ด้านเซิร์ฟเวอร์ที่มีประสิทธิภาพ ใน
การพัฒนาโปรแกรมฝั่งเซิร์ฟเวอร์ ทำาหน้าที่ จัดการกับ request และ
response ต่างๆ และส่งค่าไปแสดงผลใน JSP
5
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
ภาพที่อธิบายถึงการทำางานของ Servlet และ JSP เมื่อมีผู้ใช้มา
ใช้งานหน้าเว็ปผ่าน เว็ป Browser ซึ่งการทำางานคือ เราจะมี Web
server application ตัวนึงเช่น Apache Tomcat ไว้รองรับ
request ต่างๆๆ แล้วก็จะส่งต่อให้ container ไปเรียก servlet ให้ทำา
งานตามที่ request มาเช่น request ไปเพื่อขอข้อมูลลูกค้า servlet ก็
จะไปทำาการดึงข้อมูลลูกค้าออกมา แล้วก็ส่งค่าต่างๆๆไปที่ JSP
เอสคิวแอล (SQL)
SQL ย่อมาจาก structured query language คือภาษาที่ใช้
ในการเขียนโปรแกรม เพื่อจัดการกับฐานข้อมูลโดยเฉพาะ เป็นภาษา
มาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์และเป็นระบบเปิด (open
system) หมายถึงเราสามารถใช้คำาสั่ง sql กับฐานข้อมูลชนิดใดก็ได้
และ คำาสั่งงานเดียวกันเมื่อสั่งงานผ่าน ระบบฐานข้อมูลที่แตกต่างกันจะ
ได้ ผลลัพธ์เหมือนกัน ทำาให้เราสามารถเลือกใช้ฐานข้อมูล ชนิดใดก็ได้
โดยไม่ติดยึดกับฐานข้อมูลใดฐานข้อมูลหนึ่ง นอกจากนี้แล้ว SQL ยัง
เป็นชื่อโปรแกรมฐานข้อมูล ซึ่งโปรแกรม SQL เป็นโปรแกรมฐานข้อมูล
ที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการ
ทำางานสูง สามารถทำางานที่ซับซ้อนได้โดยใช้คำาสั่งเพียงไม่กี่คำาสั่ง
โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็น
ภาษาหนึ่ง
6
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
ปัจจุบันมีซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS ) ที่สนับสนุน
การใช้คำาสั่ง SQL เช่น Oracle , DB2, MS-SQL, MS-Access
นอกจากนี้ภาษา SQL ถูกนำามาใช้เขียนร่วมกับโปรแกรมภาษาต่างๆ
เช่น ภาษา c/C++ , VisualBasic และ Java
ประเภทของคำาสั่งภาษา SQL
1. ภาษานิยามข้อมูล(Data Definition Language :
DDL)เป็นคำาสั่งที่ใช้ในการสร้างฐานข้อมูล กำาหนดโครงสร้างข้อมูลว่า
มี Attribute ใด ชนิดของข้อมูล รวมทั้งการเปลี่ยนแปลงตาราง และ
การสร้างดัชนี คำาสั่ง : CREATE,DROP,ALTER
ภาษา DDL ประกอบด้วย 3 คำาสั่งคือ
• คำาสั่งการสร้าง (Create) ได้แก่ การสร้างตารางและอิน
เด็กซ์
CREATE TABLE <Table name>
( Attribute 1 Type 1,Attribute 2 Type 2 ,)
CREATE Unique Index on X<Table name>
เช่น
CREATE TABLE S11
(SNO CHAR(5) Not NULL,SNAME CHAR(10) ,STATUS
integer)
CREATE Unique Index XS11 on S11(SNO)
• คำาสั่งเปลี่ยนแปลงโครงสร้าง
ALTER TABLE <ชื่อตารางที่ตั้งขึ้น >
<คำาสั่งการเปลี่ยนแปลง> (<ชื่อคอลัมน์ประเภทข้อมูล>);
ตัวอย่างเช่น
ALTER TABLE SUPPLIER
ADD (LAST_SNAME Char(10));
• คำาสั่งยกเลิก (Drop) ต่างๆ
การลบโครงสร้างตาราง
DROP TABLE <ชื่อตารางที่ตั้งขึ้น >
7
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
2. ภาษาจัดการข้อมูล (Data Manipulation
Language :DML)หลังจากที่เราสร้างโครงสร้างฐานข้อมูลขึ้นแล้ว
คำาสั่งต่อไปในการป้อนข้อมูลลงในฐานข้อมูลและเปลี่ยนแปลงข้อมูลู ใน
ฐานขอม้ลู โดยการใชภาษาสำาหรับการจัดการข้อมูล (Data
ManipulationLanguage-DML) ใชจัดการข้อมูลภายในตาราง
ภายในฐานข้อมูล และภาษาแก้ไขเปลี่ยนแปลงตาราง
แบ่งออกเป็น 4 Statement คือ
• Select Statement :การเรียกหา (Retrieve) ข้อมูลจาก ฐาน
ข้อมูล
• Insert Statement :การเพิ่มเติมข้อมูลลงใน ตาราง (Table)
จาก ฐานข้อมูล
• Delete Statement: การลบข้อมูลลงออกจาก ตาราง
(Table) จาก ฐานข้อมูล
• Update Statement: การเปลี่ยนแปลงข้อมูลลงใน ตาราง
(Table) จาก ฐานข้อมูล
3. ภาษาควบคุมข้อมูล (Data Control Language :
DCL)ใช้เป็นภาษาที่ใช้ควบคุมระบบรักษาความปลอดภัย ของฐาน
ข้อมูล ประกอบด้วยคำาสั่ง 2 คำาสั่งคือ
• คำาสั่ง GRANT เป็นคำาสั่งที่ใช้กำาหนดสิทธิให้กับผู้ใช้แต่ละคน
ให้มีสิทธกระทำาการใดกับข้อมูลเช่น
การเพิ่มข้อมูล การแก้ไข หรือ การลบข้อมูลในตารางใดบ้าง
• คำาสั่ง REVOKE เป็นคำาสั่งให้มีการยกเลิกสิทธนั้นหลังจากที่ได้
GRANT แล้ว
8
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
ประโยชน์ของภาษา SQL
1. สร้างฐานข้อมูลและ ตาราง
2. สนับสนุนการจัดการฐานข้อมูล ซึ่งประกอบด้วย การเพิ่ม การ
ปรับปรุง และการลบข้อมูล
3. สนับสนุนการเรียกใช้หรือ ค้นหาข้อมูล
คำาสั่งเพิ่มข้อมูล (Insert Statement)
Insert Structure :: การเพิ่มข้อมูลทุกคอลัมน์ ที่ได้สร้าง
ไว้
Subject : การเพิ่มข้อมูลทุกคอลัมน์ ที่ได้สร้างไว้
syntax : INSERT INTO table_name
VALUES ( 'value_1', 'value_2', ...,
'value_n' );
comment : INSERT INTO person
VALUES ( 1, 'bamboo', 'labcode' );
Insert Structure :: การเพิ่มข้อมูลเฉพาะคอลัมน์ ที่
กำาหนด
Subject : การเพิ่มข้อมูลเฉพาะคอลัมน์ ที่กำาหนด
syntax : INSERT INTO table_name
( column_name_1, column_name_2, ...,
column_name_n )
VALUES ( 'value_1', 'value_2', ..., 'value_n' );
comment : INSERT INTO person ( first_name,
last_name )
VALUES ( 'bamboo', 'labcode' );
Insert Structure :: การเพิ่มข้อมูลครั้งละหลาย record
Subject : การเพิ่มข้อมูลครั้งละหลาย record
9
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
Syntax : INSERT INTO table_name
( column_name_1, column_name_2, ...,
column_name_n )
VALUES ( 'value_1', 'value_2', ..., 'value_n' ),
( 'value_1', 'value_2', ..., 'value_n' ),
( 'value_1', 'value_2', ...,
'valuhttp://www.bamboolabcode.com/article/savee
_n' );
comment : INSERT INTO person ( first_name,
last_name )
VALUES ( 'bamboo', 'labcode' ),
( 'david', 'beckhame' ),
( 'micheal', 'owen' );
Insert Structure :: การเพิ่มข้อมูลครั้งละหลาย record
Subject : การเพิ่มข้อมูลครั้งละหลาย record
syntax : INSERT INTO table_name
( column_name_1, column_name_2, ...,
column_name_n )
VALUES ( 'value_1', 'value_2', ..., 'value_n' ),
( 'value_1', 'value_2', ..., 'value_n' ),
( 'value_1', 'value_2', ...,
'valuhttp://www.bamboolabcode.com/article/savee
_n' );
comment : INSERT INTO person ( first_name,
last_name )
VALUES ( 'bamboo', 'labcode' ),
( 'david', 'beckhame' ),
( 'micheal', 'owen' );
10
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
Insert Structure :: การเพิ่มข้อมูล โดยข้อมูลได้จาก
การคัดลอกมาจากตารางอื่น
subject : การเพิ่มข้อมูล โดยข้อมูลได้จากการคัดลอกมาจาก
ตารางอื่น
syntax : INSERT INTO table_name
( column_name_1, column_name_2, ...,
column_name_n )
SELECT column_name_1, column_name_2, ...,
column_name_n
FROM table_name
WHERE condition;
comment : INSERT INTO customer ( id,
customer_name, customer_sex )
select person_id, person_name, person_sex
FROM person
WHERE person_sex = 'man';
คำาสั่งการเพิ่มข้อมูลในตารางจะใช้คำาสั่ง INSERT จะมีอยู่
2 รูปแบบคือ การเพิ่มข้อมูลเข้าไปทีละแถว และ การเพิ่มข้อมูล
โดยการดึงกลุ่มข้อมูลด้วยคำาสั่งค้นหาข้อมูล
คำาสั่งการเพิ่มข้อมูลทีละแถวโดยระบุข้อมูลที่จะ INSERT เข้าไป
โดยตรง รูปแบบของคำาสั่งเป็นดังนี้
INSERT INTO Tablename (column 1, column 2,…)
VALUES ( 'Value1', 'Value2', 'Value..n' )"
INSERT INTO เป็นคำาสั่งที่ต้องมีทุกครั้งที่ต้องการเพิ่ม
ข้อมูล
11
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
tablename หมายถึงชื่อของตารางที่จะทำาการเพิ่ม
ข้อมูล
column 1 หมายถึงคอลัมน์ที่ต้องการเพิ่มข้อมูล
Value1 หมายถึงค่าต่างๆที่จะเพิ่มให้กับฟิลด์นั้นๆ
พารามิเตอร์ค่าข้อมูลนั้น คือ ค่าของข้อมูลที่เราจะกำาหนด
ให้แต่ละคอลัมน์ โดยเรียงตามลำาดับที่ปรากฏในตาราง ซึ่งต้อง
เป็นไปตามเงื่อนไขดังนี้
ค่าของข้อมูลแต่ละคอลัมน์ต้องคั่นด้วยเครื่องหมาย ,ค่า
ของข้อมูลนั้นต้องมีชนิดที่ตรงกันกับชนิดของข้อมูลของคอลัมน์
ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลทุกคอลัมน์ลงในตาราง
ลูกค้า
INSERT INTO SALESTAB
VALUES( 1001, “Chaiwat”, “Bangkok”,0.12);
ผลของคำาสั่งนี้ จะมีข้อมูลปรากฏในทุกคอลัมน์ในตาราง
พนักงานขายดังนี้
SALENO SALENAME ADDRESS SALECOM
1001 Chaiwat Bangkok 0.12
ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลบางคอลัมน์ เช่น ชื่อเมือง
Bangkok ชื่อลูกค้า Arlee และหมายเลขลูกค้า 2001 ลงใน
ตารางลูกค้า ใช้คำาสั่งดังนี้
INSERT INTO
CUSTOMERSTAB(ADDRESS,CUSNAME,CUSNO)
VALUES( 'Bangkok','Arlee', 2001);
ผลของคำาสั่งในตารางลูกค้า จะทำาให้คอลัมน์ ADDRESS
มีค่าเป็น Bangkok คอลัมน์ CUSNAME จะมีค่าเป็น Arlee
คอลัมน์ CUSNO จะมีค่าเป็น 2001 ดังนี้
12
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
CUSNO CUSNAME ADDRESS RATING SALENO
2001 Arlee Bangkok
จะเห็นว่าไม่ได้ใส่ค่าในคอลัมน์ RATING และ SALENO
ไว้ ดังนั้นทั้งสองคอลัมน์นี้จะมีค่าเป็น NULL โดยอัตโนมัติ
คำาสั่งการเพิ่มข้อมูลโดยการดึงกลุ่มข้อมูลด้วยคำาสั่งค้นหา
ข้อมูล ในภาษา SQL สามารถใช้คำาสั่ง INSERT ในการนำาค่า
หรือหาค่าจากตารางหนึ่งแล้วไปใส่ไว้ในอีกตาราหนึ่งได้ โดย
ได้ค่านั้นมาจากการสอบถามข้อมูล รูปแบบเป็นดังนี้
INSERT INTO Tablename (column 1, column 2,…)
SELECT statement;
INSERT INTO <table name>[(column 1, column
2,…)]
SELECT statement;
INSERT INTO เป็นคำาสั่งที่ต้องมีทุกครั้งที่
ต้องการเพิ่มข้อมูล
tablename หมายถึงชื่อของตารางที่จะ
ทำาการเพิ่มข้อมูล
column 1 หมายถึงคอลัมน์ที่ต้องการเพิ่มข้อมูล
SELECT statement ประโยคคำาสั่ง SELECT ที่ต้องการ
ข้อมูลอีกตารางหนึ่ง
ตัวอย่าง ถ้าต้องการใส่ข้อมูลพนักงานลงในตาราง
BANGKOKSTAFF โดยข้อมูลที่จะใส่ลงไปนั้นได้มาจากตาราง
พนักงานขายที่อาศัยอยู่ใน “Bangkok“
INSERT INTO BANGKOKSTAFF
13
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
SELECT *
FROM SALESTAB
WHERE ADDRESS = ‘Bangkok’;
ผลของคำาสั่งนี้จะทำาให้ได้ข้อมูลพนักงานที่อยู่ในเมือง
Bangkok ( ADDRESS = ‘Bangkok’) ทั้งหมดไปใส่ไว้ใน
ตาราง BANGKOKSTAFF โดยตาราง BANGKOKSTAFF ได้
ถูกสร้างไว้แล้วด้วยคำาสั่ง CREATE TABLE ในการสร้างตาราง
BANGKOKSTAFF จะต้องสร้างให้มี 4 คอลัมน์และมีชนิด
ข้อมูลตรงกับคอลัมน์ของตารางพนักงานขาย (โดยไม่จำาเป็น
ต้องมีชื่อคอลัมน์เหมือนกัน)
14
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
วิธีการสร้างตารางในฐานข้อมูล โดย
ใช้Navicat
1.คลิกขวาที่ Connection ชื่อ MyHost แล้วสร้างฐานข้อมูล
โดยเข้าไปเลือกที่ New Database…
2.ตั้งชื่อ Database ชื่อ cartoonbook กำาหนด Character set เป็น
utf8 – UTF-8 Unicode และ Collation เป็น utf8_genral_ci เพื่อ
ให้ฐานข้อมูลรองรับภาษาไทยได้
15
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
3.สร้างตารางของฐานข้อมูล โดยดับเบิ้ลคลิกไปที่ฐานข้อมูลที่สร้างขึ้น
แล้วคลิกขวาที่ Table เลือก New table
4.จากนั้นจะได้ตารางดังรูป
16
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
5.สร้าง Fields ชื่อ member_id เพื่ออ้างอิงข้อมูล และกำาหนดค่า
ต่างๆดังนี้
 Type กำาหนดชนิดฟิลด์เป็น int
 Length กำาหนดขนาดฟิลด์ตามความต้องการ
 Decimals กำาหนดจำานวนหลักตัวเลข หลังจุดทศนิยม (กรณีที่
เลือกฟิลด์เป็นชนิดตัวเลขทศนิยมเท่านั้น
 Allow Null ติ๊กถูกคือ อนุญาตให้ฟิลด์นี้เป็นค่าว่างได้ แต่ถ้าไม่
ติ๊กก็เท่ากับห้ามมีค่าว่าง
ช่องว่าง กำาหนดฟิลด์เป็น ไพรมารีคีย์
6.สร้าง Fields ต่างๆ ตามข้อมูลที่ต้องการจัดเก็บลงบนฐานข้อมูล
17
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
7.เมื่อสร้าง Fields เสร็จแล้ว ให้กด Save และกำาหนดชื่อตาราง
8.หน้าต่างของตารางฐานข้อมูล ที่สร้างขึ้น
18
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
การเพิ่มข้อมูลในฐานข้อมูลด้วยภาษา
JSP และ SQL
- การสร้าง Class Bean เพื่อรับส่งข้อมูล
1. สร้าง Package ใหม่ขึ้นมา โดยคลิกที่ Java Resources แล้วคลิก
ขวาที่ src เข้าไปที่New >Package
2.ตั้งชื่อ Package ชื่อ com.model
3.สร้าง Class ใน Packagecom.model
19
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
4.ตั้งชื่อ Class ชื่อ MembersBean
5.ประกาศตัวแปรที่ต้องการจะเก็บ
20
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
6.สร้าง getters และ setters ขึ้นมา โดยคลิกขวาที่บรรทัดข้างล่าง
ของการประกาศตัวแปร เลือกไปที่ source > Generate Getters
and Setters
7.เลือก Select All เพื่อ Generate ทุกตัว
21
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
8.หลังจาก Generate เสร็จจะได้ดังรูป
- การสร้าง Class DAO เพื่อติดต่อกับ DataBase
1. สร้าง Package ใหม่ตามรูป
22
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
2.ตั้งชื่อ package ชื่อ com.manager
3. สร้าง class ใน package com.manager
23
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
4. ตั้งชื่อ class ชื่อ MemberDAO
5.ประกาศตัวแปรใน class MemberDAO
24
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
6.สร้างเมธอด addMembers ในคลาส MemberDAO เพื่อทำาหน้าที่
Insert ข้อมูลไปเก็บใน database เมื่อมีการเพิ่มข้อมูล
25
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
7. การเรียกใช้ method createConnection()จาก class
DBConnect และการเพิ่มการกระทำาตามๆที่ต้องการไปเก็บใน
Database
- การเขียน Code ใน Servlet
26
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
1.ประกาศ Object mem ของ Class MembersBean เพื่อเอาไว้รับ
ค่า และเพื่อเรียกใช้เมธอดหรือตัวแปรใน Class MembersBean
2.ประกาศ Object memdao ของ Class MembersDAO เพื่อเรียก
ใช้เมธอดหรือตัวแปรใน Class MembersDAO
Code Class MembersBean
packagecom.model;
publicclassMembersBean {
27
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
privateintmember_id ;
private String member_username;
private String member_password ;
private String member_firstname ;
private String member_lastname ;
private String member_sex ;
private String member_cartoon[] ;
private String member_address ;
private String member_county ;
private String member_phone ;
private String member_email ;
private String member_image ;
publicintgetMember_id() {
returnmember_id;
}
publicvoidsetMember_id(intmember_id) {
this.member_id = member_id;
}
public String getMember_username() {
returnmember_username;
}
publicvoidsetMember_username(String member_username) {
this.member_username = member_username;
}
public String getMember_password() {
returnmember_password;
}
publicvoidsetMember_password(String member_password) {
this.member_password = member_password;
}
public String getMember_firstname() {
returnmember_firstname;
}
publicvoidsetMember_firstname(String member_firstname) {
this.member_firstname = member_firstname;
}
public String getMember_lastname() {
returnmember_lastname;
}
publicvoidsetMember_lastname(String member_lastname) {
this.member_lastname = member_lastname;
}
public String getMember_sex() {
returnmember_sex;
}
publicvoidsetMember_sex(String member_sex) {
this.member_sex = member_sex;
}
28
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
public String[] getMember_cartoon() {
returnmember_cartoon;
}
publicvoidsetMember_cartoon(String[] member_cartoon) {
this.member_cartoon = member_cartoon;
}
public String getMember_address() {
returnmember_address;
}
publicvoidsetMember_address(String member_address) {
this.member_address = member_address;
}
public String getMember_county() {
returnmember_county;
}
publicvoidsetMember_county(String member_county) {
this.member_county = member_county;
}
public String getMember_phone() {
returnmember_phone;
}
publicvoidsetMember_phone(String member_phone) {
this.member_phone = member_phone;
}
public String getMember_email() {
returnmember_email;
}
publicvoidsetMember_email(String member_email) {
this.member_email = member_email;
}
public String getMember_image() {
returnmember_image;
}
publicvoidsetMember_image(String member_image) {
this.member_image = member_image;
}
}
Code Class MemberDAO
packagecom.manager;
importjava.sql.ResultSet;
29
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
importjava.sql.SQLException;
importjava.sql.Statement;
importcom.controller.DBConnect;
importcom.model.MembersBean;
public class MemberDAO {
staticDBConnectdbc = new DBConnect();
static Statement stmt;
public static booleanaddMembers(MembersBeanmem){
String sql = "INSERT INTO
membersbook(member_username,member_password,member_firstname," +
"member_lastname,member_sex,member_address,member_co
unty," +
"member_phone,member_email,member_image) " +
"VALUES('"+mem.getMember_username()
+"','"+mem.getMember_password()+"'" +",'"+mem.getMember_firstname()+
"','"+mem.getMember_lastname()+"'"
+",'"+mem.getMember_sex()+"','"+mem.getMember_address()+
"','"+mem.getMember_county()+"'"
+",'"+mem.getMember_phone()+"','"+mem.getMember_email()+
"','"+mem.getMember_image()+"')";
try{
dbc.createConnection();
stmt = dbc.getStatement();
stmt.executeUpdate(sql);
}catch (SQLException ex){
ex.printStackTrace();
return false;
}
return true;
}
}
Code Class CartoonBookServlet
packagecom.controller;
importjava.io.IOException;
importjavax.servlet.RequestDispatcher;
30
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.manager.MemberDAO;
importcom.model.MembersBean;
/**
* Servlet implementation class CartoonBookServlet
*/
@WebServlet("/CartoonBookServlet")
public class CartoonBookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
publicCartoonBookServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
31
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
String username = request.getParameter("username");
String password = request.getParameter("password");
String firstname = request.getParameter("firstname");
String lastname = request.getParameter("lastname");
String sex = request.getParameter("sex");
String cartoon[] = request.getParameterValues("cartoon");
String address = request.getParameter("address");
String county = request.getParameter("county");
String phone = request.getParameter("phone");
String email = request.getParameter("email");
String image = request.getParameter("image");
String page = "ProfileCartoonBook.jsp";
System.out.println("username"+username);
System.out.println("password"+password);
System.out.println("firstname"+firstname);
System.out.println("lastname"+lastname);
System.out.println("sex"+sex);
System.out.println("cartoon"+cartoon);
System.out.println("address"+address);
System.out.println("county"+county);
System.out.println("phone"+phone);
System.out.println("email"+email);
System.out.println("image"+image);
MembersBeanmem = new MembersBean();
mem.setMember_username(username);
mem.setMember_password(password);
mem.setMember_firstname(firstname);
mem.setMember_lastname(lastname);
mem.setMember_sex(sex);
mem.setMember_cartoon(cartoon);
mem.setMember_address(address);
mem.setMember_county(county);
mem.setMember_phone(phone);
mem.setMember_email(email);
mem.setMember_image(image);
MemberDAOmemdao = new MemberDAO();
memdao.addMembers(mem);
32
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
RequestDispatcher dispatcher =
request.getRequestDispatcher(page);
if(dispatcher != null){
dispatcher.forward(request, response);
System.out.println("send coeplete");
}
}
}
ตัวอย่างการใช้งาน
1. Run ในหน้า JSP กรอกข้อมูลสมัครชิก
33
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
2. เมื่อกดตกลงแล้ว ข้อมูลก็จะมาแสดงหน้านี้ และข้อมูลทั้งหมดก็จะ
เก็บลงในตาราง Database ดังรูป
34
การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL
3.ข้อมูลสมาชิกได้เก็บลงใน Database เรียบร้อยแล้ว และ
member_id ก็เป็นตัวเรียงลำาดับของสมาชิกที่เข้ามาสมัค
รก่อนหลัง

Más contenido relacionado

Similar a บทที่4

Similar a บทที่4 (9)

Introduction to ETL - Pentaho 21_23may2011
Introduction to ETL - Pentaho 21_23may2011Introduction to ETL - Pentaho 21_23may2011
Introduction to ETL - Pentaho 21_23may2011
 
Sql ta2
Sql ta2Sql ta2
Sql ta2
 
DML
DMLDML
DML
 
Sql ta2
Sql ta2Sql ta2
Sql ta2
 
Sql theory
Sql theorySql theory
Sql theory
 
To try and create DTD and XML Schema
To try and create DTD and XML SchemaTo try and create DTD and XML Schema
To try and create DTD and XML Schema
 
07 sql
07 sql07 sql
07 sql
 
Int3204 charapter1
Int3204 charapter1Int3204 charapter1
Int3204 charapter1
 
20070924 metadata-dublincore
20070924 metadata-dublincore20070924 metadata-dublincore
20070924 metadata-dublincore
 

Más de Palm Unnop

บทที่6 update&delete
บทที่6 update&deleteบทที่6 update&delete
บทที่6 update&deletePalm Unnop
 
บทที่5
บทที่5บทที่5
บทที่5Palm Unnop
 
บทที่3
บทที่3บทที่3
บทที่3Palm Unnop
 
บทที่2
บทที่2บทที่2
บทที่2Palm Unnop
 
บทที่1
บทที่1บทที่1
บทที่1Palm Unnop
 
บทที่1
บทที่1บทที่1
บทที่1Palm Unnop
 

Más de Palm Unnop (6)

บทที่6 update&delete
บทที่6 update&deleteบทที่6 update&delete
บทที่6 update&delete
 
บทที่5
บทที่5บทที่5
บทที่5
 
บทที่3
บทที่3บทที่3
บทที่3
 
บทที่2
บทที่2บทที่2
บทที่2
 
บทที่1
บทที่1บทที่1
บทที่1
 
บทที่1
บทที่1บทที่1
บทที่1
 

บทที่4

  • 1. 1 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL รายงาน เรื่อง การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL เสนอ อาจารย์ก่องกาญจน์ ดุลยไชย จัดทำาโดย 1. นางสาวธารทิพย์ หนูทิมทอง 5404101342 2. นางสาวธิดาพร โตเอี่ยม 5404101343 3. นางสาวปวันรัตน์ สุทธิโชติวงศ์ 5404101402 4. นางสาวสุกัลยา สุณาโท 5404101403 5. นางสาวสุรัสวดี ภาพเมืองมูล 5404101404 สาขาวิทยาการคอมพิวเตอร์ กลุ่มเรียนที่ 1
  • 2. 2 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL รายงานเล่มนี้เป็นส่วนหนึ่งของหลักการ เขียนโปรแกรมบนอินเตอร์เน็ต(คพ 313) ภาคเรียนที่ 1 ปีการศึกษา 2556 คณะวิทยาศาสตร์ มหาวิทยาลัยแม่โจ้ Database (ฐานข้อมูล) คือระบบที่รวบรวมข้อมูลไว้ในที่เดียวกันซึ่งประกอบไปด้วยแฟ้ม ข้อมูล (File) ระเบียน (Record) และเขตข้อมูล (Field) และถูกจัดการ ด้วยระบบเดียวกันโปรแกรม คอมพิวเตอร์จะเข้าไปดึงข้อมูลที่ต้องการได้อย่างรวดเร็ว ซึ่งอาจเปรียบ ฐานข้อมูลเสมือนเป็น electronic filing system การเข้าถึงข้อมูลในฐานข้อมูลจึงจำาเป็นต้องมีระบบการจัดการฐาน ข้อมูลมาช่วยเรียกว่า Database management system (DBMS) ซึ่งจะช่วยให้ผู้ใช้ สามารถจัดการกับข้อมูลตามความ ต้องการได้ในหน่วยงานใหญ่ๆ อาจมีฐานข้อมูลมากกว่า 1 ฐานข้อมูล เช่นฐานข้อมูลบุคลากร
  • 3. 3 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL ฐานข้อมูลลูกค้าฐานข้อมูลสินค้าเป็นต้น DAO (Data Access Objects) เป็น application program interface (API)กับ Visual Basic ของ Microsoft ที่ให้ผู้เขียนโปรแกรมขอเข้าถึงฐานข้อมูล Microsoft Access ได้ DAO เป็นอินเตอร์เฟซแรกแบบ object- oriented กับฐานข้อมูลของ เพื่อให้ programmer สามารถเข้าใช้ งาน database ประเภทต่างๆ ได้โดยง่าย JavaBean ในการเขียน JSP สำาหรับระบบใหญ่ๆ ส่วนใหญ่จะไม่นิยมใส่ java code ลงไปในไฟล์ JSP สิ่งที่ อยู่ในไฟล์มักจะเป็นเพียง HTML code และค่าของ variables(data) ต่างๆ ที่ได้มาจาก JavaBeans เท่านั้น ข้อดีของ การใช้ JavaBean - สามารถทำางานได้บนทุกๆ ระบบปฏิบัติการ โดยที่ไม่ต้องทำาการ Compile ใหม่ทุกครั้ง - มีการ load ลงหน่วยความจำาเพียงครั้งเดียวจนกว่าจะมีการเลิกใช้งาน โปรแกรม - สามารถนำา Component ที่เขียนมาแล้ว กลับมาใช้ใหม่ได้อีก
  • 4. 4 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL - สามารถนำาความรู้ที่ใช้ในภาษา Java มาใช้ในการเขียนโปรแกรม ร่วมด้วยได้ JSP & Servlet JavaServer Pages (JSP) เป็นเทคโนโลยีการเขียนโปรแกรมฝั่ง เซิร์ฟเวอร์ที่ช่วยให้การสร้างหน้าเว็บแบบไดนามิกและการประยุกต์ใช้ ซึ่งทำาได้โดยการฝังรหัส Java เป็น HTML, XML, DHTML, หรือ ประเภทเอกสารอื่น ๆ เมื่อเว็บเบราว์เซอร์ทำาให้คำาขอไปยังที่เก็บ โปรแกรม Java ซึ่งตามปกติจะเป็นเว็บเซิร์ฟเวอร์, หน้าคงถูกแปลงอยู่ เบื้องหลังและ แสดงเป็นเนื้อหาแบบไดนามิกกับตัว JSP Servlets เป็น Componet ด้านเซิร์ฟเวอร์ที่มีประสิทธิภาพ ใน การพัฒนาโปรแกรมฝั่งเซิร์ฟเวอร์ ทำาหน้าที่ จัดการกับ request และ response ต่างๆ และส่งค่าไปแสดงผลใน JSP
  • 5. 5 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL ภาพที่อธิบายถึงการทำางานของ Servlet และ JSP เมื่อมีผู้ใช้มา ใช้งานหน้าเว็ปผ่าน เว็ป Browser ซึ่งการทำางานคือ เราจะมี Web server application ตัวนึงเช่น Apache Tomcat ไว้รองรับ request ต่างๆๆ แล้วก็จะส่งต่อให้ container ไปเรียก servlet ให้ทำา งานตามที่ request มาเช่น request ไปเพื่อขอข้อมูลลูกค้า servlet ก็ จะไปทำาการดึงข้อมูลลูกค้าออกมา แล้วก็ส่งค่าต่างๆๆไปที่ JSP เอสคิวแอล (SQL) SQL ย่อมาจาก structured query language คือภาษาที่ใช้ ในการเขียนโปรแกรม เพื่อจัดการกับฐานข้อมูลโดยเฉพาะ เป็นภาษา มาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์และเป็นระบบเปิด (open system) หมายถึงเราสามารถใช้คำาสั่ง sql กับฐานข้อมูลชนิดใดก็ได้ และ คำาสั่งงานเดียวกันเมื่อสั่งงานผ่าน ระบบฐานข้อมูลที่แตกต่างกันจะ ได้ ผลลัพธ์เหมือนกัน ทำาให้เราสามารถเลือกใช้ฐานข้อมูล ชนิดใดก็ได้ โดยไม่ติดยึดกับฐานข้อมูลใดฐานข้อมูลหนึ่ง นอกจากนี้แล้ว SQL ยัง เป็นชื่อโปรแกรมฐานข้อมูล ซึ่งโปรแกรม SQL เป็นโปรแกรมฐานข้อมูล ที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการ ทำางานสูง สามารถทำางานที่ซับซ้อนได้โดยใช้คำาสั่งเพียงไม่กี่คำาสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็น ภาษาหนึ่ง
  • 6. 6 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL ปัจจุบันมีซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS ) ที่สนับสนุน การใช้คำาสั่ง SQL เช่น Oracle , DB2, MS-SQL, MS-Access นอกจากนี้ภาษา SQL ถูกนำามาใช้เขียนร่วมกับโปรแกรมภาษาต่างๆ เช่น ภาษา c/C++ , VisualBasic และ Java ประเภทของคำาสั่งภาษา SQL 1. ภาษานิยามข้อมูล(Data Definition Language : DDL)เป็นคำาสั่งที่ใช้ในการสร้างฐานข้อมูล กำาหนดโครงสร้างข้อมูลว่า มี Attribute ใด ชนิดของข้อมูล รวมทั้งการเปลี่ยนแปลงตาราง และ การสร้างดัชนี คำาสั่ง : CREATE,DROP,ALTER ภาษา DDL ประกอบด้วย 3 คำาสั่งคือ • คำาสั่งการสร้าง (Create) ได้แก่ การสร้างตารางและอิน เด็กซ์ CREATE TABLE <Table name> ( Attribute 1 Type 1,Attribute 2 Type 2 ,) CREATE Unique Index on X<Table name> เช่น CREATE TABLE S11 (SNO CHAR(5) Not NULL,SNAME CHAR(10) ,STATUS integer) CREATE Unique Index XS11 on S11(SNO) • คำาสั่งเปลี่ยนแปลงโครงสร้าง ALTER TABLE <ชื่อตารางที่ตั้งขึ้น > <คำาสั่งการเปลี่ยนแปลง> (<ชื่อคอลัมน์ประเภทข้อมูล>); ตัวอย่างเช่น ALTER TABLE SUPPLIER ADD (LAST_SNAME Char(10)); • คำาสั่งยกเลิก (Drop) ต่างๆ การลบโครงสร้างตาราง DROP TABLE <ชื่อตารางที่ตั้งขึ้น >
  • 7. 7 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 2. ภาษาจัดการข้อมูล (Data Manipulation Language :DML)หลังจากที่เราสร้างโครงสร้างฐานข้อมูลขึ้นแล้ว คำาสั่งต่อไปในการป้อนข้อมูลลงในฐานข้อมูลและเปลี่ยนแปลงข้อมูลู ใน ฐานขอม้ลู โดยการใชภาษาสำาหรับการจัดการข้อมูล (Data ManipulationLanguage-DML) ใชจัดการข้อมูลภายในตาราง ภายในฐานข้อมูล และภาษาแก้ไขเปลี่ยนแปลงตาราง แบ่งออกเป็น 4 Statement คือ • Select Statement :การเรียกหา (Retrieve) ข้อมูลจาก ฐาน ข้อมูล • Insert Statement :การเพิ่มเติมข้อมูลลงใน ตาราง (Table) จาก ฐานข้อมูล • Delete Statement: การลบข้อมูลลงออกจาก ตาราง (Table) จาก ฐานข้อมูล • Update Statement: การเปลี่ยนแปลงข้อมูลลงใน ตาราง (Table) จาก ฐานข้อมูล 3. ภาษาควบคุมข้อมูล (Data Control Language : DCL)ใช้เป็นภาษาที่ใช้ควบคุมระบบรักษาความปลอดภัย ของฐาน ข้อมูล ประกอบด้วยคำาสั่ง 2 คำาสั่งคือ • คำาสั่ง GRANT เป็นคำาสั่งที่ใช้กำาหนดสิทธิให้กับผู้ใช้แต่ละคน ให้มีสิทธกระทำาการใดกับข้อมูลเช่น การเพิ่มข้อมูล การแก้ไข หรือ การลบข้อมูลในตารางใดบ้าง • คำาสั่ง REVOKE เป็นคำาสั่งให้มีการยกเลิกสิทธนั้นหลังจากที่ได้ GRANT แล้ว
  • 8. 8 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL ประโยชน์ของภาษา SQL 1. สร้างฐานข้อมูลและ ตาราง 2. สนับสนุนการจัดการฐานข้อมูล ซึ่งประกอบด้วย การเพิ่ม การ ปรับปรุง และการลบข้อมูล 3. สนับสนุนการเรียกใช้หรือ ค้นหาข้อมูล คำาสั่งเพิ่มข้อมูล (Insert Statement) Insert Structure :: การเพิ่มข้อมูลทุกคอลัมน์ ที่ได้สร้าง ไว้ Subject : การเพิ่มข้อมูลทุกคอลัมน์ ที่ได้สร้างไว้ syntax : INSERT INTO table_name VALUES ( 'value_1', 'value_2', ..., 'value_n' ); comment : INSERT INTO person VALUES ( 1, 'bamboo', 'labcode' ); Insert Structure :: การเพิ่มข้อมูลเฉพาะคอลัมน์ ที่ กำาหนด Subject : การเพิ่มข้อมูลเฉพาะคอลัมน์ ที่กำาหนด syntax : INSERT INTO table_name ( column_name_1, column_name_2, ..., column_name_n ) VALUES ( 'value_1', 'value_2', ..., 'value_n' ); comment : INSERT INTO person ( first_name, last_name ) VALUES ( 'bamboo', 'labcode' ); Insert Structure :: การเพิ่มข้อมูลครั้งละหลาย record Subject : การเพิ่มข้อมูลครั้งละหลาย record
  • 9. 9 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL Syntax : INSERT INTO table_name ( column_name_1, column_name_2, ..., column_name_n ) VALUES ( 'value_1', 'value_2', ..., 'value_n' ), ( 'value_1', 'value_2', ..., 'value_n' ), ( 'value_1', 'value_2', ..., 'valuhttp://www.bamboolabcode.com/article/savee _n' ); comment : INSERT INTO person ( first_name, last_name ) VALUES ( 'bamboo', 'labcode' ), ( 'david', 'beckhame' ), ( 'micheal', 'owen' ); Insert Structure :: การเพิ่มข้อมูลครั้งละหลาย record Subject : การเพิ่มข้อมูลครั้งละหลาย record syntax : INSERT INTO table_name ( column_name_1, column_name_2, ..., column_name_n ) VALUES ( 'value_1', 'value_2', ..., 'value_n' ), ( 'value_1', 'value_2', ..., 'value_n' ), ( 'value_1', 'value_2', ..., 'valuhttp://www.bamboolabcode.com/article/savee _n' ); comment : INSERT INTO person ( first_name, last_name ) VALUES ( 'bamboo', 'labcode' ), ( 'david', 'beckhame' ), ( 'micheal', 'owen' );
  • 10. 10 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL Insert Structure :: การเพิ่มข้อมูล โดยข้อมูลได้จาก การคัดลอกมาจากตารางอื่น subject : การเพิ่มข้อมูล โดยข้อมูลได้จากการคัดลอกมาจาก ตารางอื่น syntax : INSERT INTO table_name ( column_name_1, column_name_2, ..., column_name_n ) SELECT column_name_1, column_name_2, ..., column_name_n FROM table_name WHERE condition; comment : INSERT INTO customer ( id, customer_name, customer_sex ) select person_id, person_name, person_sex FROM person WHERE person_sex = 'man'; คำาสั่งการเพิ่มข้อมูลในตารางจะใช้คำาสั่ง INSERT จะมีอยู่ 2 รูปแบบคือ การเพิ่มข้อมูลเข้าไปทีละแถว และ การเพิ่มข้อมูล โดยการดึงกลุ่มข้อมูลด้วยคำาสั่งค้นหาข้อมูล คำาสั่งการเพิ่มข้อมูลทีละแถวโดยระบุข้อมูลที่จะ INSERT เข้าไป โดยตรง รูปแบบของคำาสั่งเป็นดังนี้ INSERT INTO Tablename (column 1, column 2,…) VALUES ( 'Value1', 'Value2', 'Value..n' )" INSERT INTO เป็นคำาสั่งที่ต้องมีทุกครั้งที่ต้องการเพิ่ม ข้อมูล
  • 11. 11 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL tablename หมายถึงชื่อของตารางที่จะทำาการเพิ่ม ข้อมูล column 1 หมายถึงคอลัมน์ที่ต้องการเพิ่มข้อมูล Value1 หมายถึงค่าต่างๆที่จะเพิ่มให้กับฟิลด์นั้นๆ พารามิเตอร์ค่าข้อมูลนั้น คือ ค่าของข้อมูลที่เราจะกำาหนด ให้แต่ละคอลัมน์ โดยเรียงตามลำาดับที่ปรากฏในตาราง ซึ่งต้อง เป็นไปตามเงื่อนไขดังนี้ ค่าของข้อมูลแต่ละคอลัมน์ต้องคั่นด้วยเครื่องหมาย ,ค่า ของข้อมูลนั้นต้องมีชนิดที่ตรงกันกับชนิดของข้อมูลของคอลัมน์ ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลทุกคอลัมน์ลงในตาราง ลูกค้า INSERT INTO SALESTAB VALUES( 1001, “Chaiwat”, “Bangkok”,0.12); ผลของคำาสั่งนี้ จะมีข้อมูลปรากฏในทุกคอลัมน์ในตาราง พนักงานขายดังนี้ SALENO SALENAME ADDRESS SALECOM 1001 Chaiwat Bangkok 0.12 ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลบางคอลัมน์ เช่น ชื่อเมือง Bangkok ชื่อลูกค้า Arlee และหมายเลขลูกค้า 2001 ลงใน ตารางลูกค้า ใช้คำาสั่งดังนี้ INSERT INTO CUSTOMERSTAB(ADDRESS,CUSNAME,CUSNO) VALUES( 'Bangkok','Arlee', 2001); ผลของคำาสั่งในตารางลูกค้า จะทำาให้คอลัมน์ ADDRESS มีค่าเป็น Bangkok คอลัมน์ CUSNAME จะมีค่าเป็น Arlee คอลัมน์ CUSNO จะมีค่าเป็น 2001 ดังนี้
  • 12. 12 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL CUSNO CUSNAME ADDRESS RATING SALENO 2001 Arlee Bangkok จะเห็นว่าไม่ได้ใส่ค่าในคอลัมน์ RATING และ SALENO ไว้ ดังนั้นทั้งสองคอลัมน์นี้จะมีค่าเป็น NULL โดยอัตโนมัติ คำาสั่งการเพิ่มข้อมูลโดยการดึงกลุ่มข้อมูลด้วยคำาสั่งค้นหา ข้อมูล ในภาษา SQL สามารถใช้คำาสั่ง INSERT ในการนำาค่า หรือหาค่าจากตารางหนึ่งแล้วไปใส่ไว้ในอีกตาราหนึ่งได้ โดย ได้ค่านั้นมาจากการสอบถามข้อมูล รูปแบบเป็นดังนี้ INSERT INTO Tablename (column 1, column 2,…) SELECT statement; INSERT INTO <table name>[(column 1, column 2,…)] SELECT statement; INSERT INTO เป็นคำาสั่งที่ต้องมีทุกครั้งที่ ต้องการเพิ่มข้อมูล tablename หมายถึงชื่อของตารางที่จะ ทำาการเพิ่มข้อมูล column 1 หมายถึงคอลัมน์ที่ต้องการเพิ่มข้อมูล SELECT statement ประโยคคำาสั่ง SELECT ที่ต้องการ ข้อมูลอีกตารางหนึ่ง ตัวอย่าง ถ้าต้องการใส่ข้อมูลพนักงานลงในตาราง BANGKOKSTAFF โดยข้อมูลที่จะใส่ลงไปนั้นได้มาจากตาราง พนักงานขายที่อาศัยอยู่ใน “Bangkok“ INSERT INTO BANGKOKSTAFF
  • 13. 13 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL SELECT * FROM SALESTAB WHERE ADDRESS = ‘Bangkok’; ผลของคำาสั่งนี้จะทำาให้ได้ข้อมูลพนักงานที่อยู่ในเมือง Bangkok ( ADDRESS = ‘Bangkok’) ทั้งหมดไปใส่ไว้ใน ตาราง BANGKOKSTAFF โดยตาราง BANGKOKSTAFF ได้ ถูกสร้างไว้แล้วด้วยคำาสั่ง CREATE TABLE ในการสร้างตาราง BANGKOKSTAFF จะต้องสร้างให้มี 4 คอลัมน์และมีชนิด ข้อมูลตรงกับคอลัมน์ของตารางพนักงานขาย (โดยไม่จำาเป็น ต้องมีชื่อคอลัมน์เหมือนกัน)
  • 14. 14 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL วิธีการสร้างตารางในฐานข้อมูล โดย ใช้Navicat 1.คลิกขวาที่ Connection ชื่อ MyHost แล้วสร้างฐานข้อมูล โดยเข้าไปเลือกที่ New Database… 2.ตั้งชื่อ Database ชื่อ cartoonbook กำาหนด Character set เป็น utf8 – UTF-8 Unicode และ Collation เป็น utf8_genral_ci เพื่อ ให้ฐานข้อมูลรองรับภาษาไทยได้
  • 16. 16 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 5.สร้าง Fields ชื่อ member_id เพื่ออ้างอิงข้อมูล และกำาหนดค่า ต่างๆดังนี้  Type กำาหนดชนิดฟิลด์เป็น int  Length กำาหนดขนาดฟิลด์ตามความต้องการ  Decimals กำาหนดจำานวนหลักตัวเลข หลังจุดทศนิยม (กรณีที่ เลือกฟิลด์เป็นชนิดตัวเลขทศนิยมเท่านั้น  Allow Null ติ๊กถูกคือ อนุญาตให้ฟิลด์นี้เป็นค่าว่างได้ แต่ถ้าไม่ ติ๊กก็เท่ากับห้ามมีค่าว่าง ช่องว่าง กำาหนดฟิลด์เป็น ไพรมารีคีย์ 6.สร้าง Fields ต่างๆ ตามข้อมูลที่ต้องการจัดเก็บลงบนฐานข้อมูล
  • 17. 17 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 7.เมื่อสร้าง Fields เสร็จแล้ว ให้กด Save และกำาหนดชื่อตาราง 8.หน้าต่างของตารางฐานข้อมูล ที่สร้างขึ้น
  • 18. 18 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL การเพิ่มข้อมูลในฐานข้อมูลด้วยภาษา JSP และ SQL - การสร้าง Class Bean เพื่อรับส่งข้อมูล 1. สร้าง Package ใหม่ขึ้นมา โดยคลิกที่ Java Resources แล้วคลิก ขวาที่ src เข้าไปที่New >Package 2.ตั้งชื่อ Package ชื่อ com.model 3.สร้าง Class ใน Packagecom.model
  • 19. 19 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 4.ตั้งชื่อ Class ชื่อ MembersBean 5.ประกาศตัวแปรที่ต้องการจะเก็บ
  • 20. 20 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 6.สร้าง getters และ setters ขึ้นมา โดยคลิกขวาที่บรรทัดข้างล่าง ของการประกาศตัวแปร เลือกไปที่ source > Generate Getters and Setters 7.เลือก Select All เพื่อ Generate ทุกตัว
  • 21. 21 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 8.หลังจาก Generate เสร็จจะได้ดังรูป - การสร้าง Class DAO เพื่อติดต่อกับ DataBase 1. สร้าง Package ใหม่ตามรูป
  • 23. 23 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 4. ตั้งชื่อ class ชื่อ MemberDAO 5.ประกาศตัวแปรใน class MemberDAO
  • 24. 24 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 6.สร้างเมธอด addMembers ในคลาส MemberDAO เพื่อทำาหน้าที่ Insert ข้อมูลไปเก็บใน database เมื่อมีการเพิ่มข้อมูล
  • 25. 25 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 7. การเรียกใช้ method createConnection()จาก class DBConnect และการเพิ่มการกระทำาตามๆที่ต้องการไปเก็บใน Database - การเขียน Code ใน Servlet
  • 26. 26 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 1.ประกาศ Object mem ของ Class MembersBean เพื่อเอาไว้รับ ค่า และเพื่อเรียกใช้เมธอดหรือตัวแปรใน Class MembersBean 2.ประกาศ Object memdao ของ Class MembersDAO เพื่อเรียก ใช้เมธอดหรือตัวแปรใน Class MembersDAO Code Class MembersBean packagecom.model; publicclassMembersBean {
  • 27. 27 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL privateintmember_id ; private String member_username; private String member_password ; private String member_firstname ; private String member_lastname ; private String member_sex ; private String member_cartoon[] ; private String member_address ; private String member_county ; private String member_phone ; private String member_email ; private String member_image ; publicintgetMember_id() { returnmember_id; } publicvoidsetMember_id(intmember_id) { this.member_id = member_id; } public String getMember_username() { returnmember_username; } publicvoidsetMember_username(String member_username) { this.member_username = member_username; } public String getMember_password() { returnmember_password; } publicvoidsetMember_password(String member_password) { this.member_password = member_password; } public String getMember_firstname() { returnmember_firstname; } publicvoidsetMember_firstname(String member_firstname) { this.member_firstname = member_firstname; } public String getMember_lastname() { returnmember_lastname; } publicvoidsetMember_lastname(String member_lastname) { this.member_lastname = member_lastname; } public String getMember_sex() { returnmember_sex; } publicvoidsetMember_sex(String member_sex) { this.member_sex = member_sex; }
  • 28. 28 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL public String[] getMember_cartoon() { returnmember_cartoon; } publicvoidsetMember_cartoon(String[] member_cartoon) { this.member_cartoon = member_cartoon; } public String getMember_address() { returnmember_address; } publicvoidsetMember_address(String member_address) { this.member_address = member_address; } public String getMember_county() { returnmember_county; } publicvoidsetMember_county(String member_county) { this.member_county = member_county; } public String getMember_phone() { returnmember_phone; } publicvoidsetMember_phone(String member_phone) { this.member_phone = member_phone; } public String getMember_email() { returnmember_email; } publicvoidsetMember_email(String member_email) { this.member_email = member_email; } public String getMember_image() { returnmember_image; } publicvoidsetMember_image(String member_image) { this.member_image = member_image; } } Code Class MemberDAO packagecom.manager; importjava.sql.ResultSet;
  • 29. 29 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL importjava.sql.SQLException; importjava.sql.Statement; importcom.controller.DBConnect; importcom.model.MembersBean; public class MemberDAO { staticDBConnectdbc = new DBConnect(); static Statement stmt; public static booleanaddMembers(MembersBeanmem){ String sql = "INSERT INTO membersbook(member_username,member_password,member_firstname," + "member_lastname,member_sex,member_address,member_co unty," + "member_phone,member_email,member_image) " + "VALUES('"+mem.getMember_username() +"','"+mem.getMember_password()+"'" +",'"+mem.getMember_firstname()+ "','"+mem.getMember_lastname()+"'" +",'"+mem.getMember_sex()+"','"+mem.getMember_address()+ "','"+mem.getMember_county()+"'" +",'"+mem.getMember_phone()+"','"+mem.getMember_email()+ "','"+mem.getMember_image()+"')"; try{ dbc.createConnection(); stmt = dbc.getStatement(); stmt.executeUpdate(sql); }catch (SQLException ex){ ex.printStackTrace(); return false; } return true; } } Code Class CartoonBookServlet packagecom.controller; importjava.io.IOException; importjavax.servlet.RequestDispatcher;
  • 30. 30 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importcom.manager.MemberDAO; importcom.model.MembersBean; /** * Servlet implementation class CartoonBookServlet */ @WebServlet("/CartoonBookServlet") public class CartoonBookServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ publicCartoonBookServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
  • 31. 31 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL String username = request.getParameter("username"); String password = request.getParameter("password"); String firstname = request.getParameter("firstname"); String lastname = request.getParameter("lastname"); String sex = request.getParameter("sex"); String cartoon[] = request.getParameterValues("cartoon"); String address = request.getParameter("address"); String county = request.getParameter("county"); String phone = request.getParameter("phone"); String email = request.getParameter("email"); String image = request.getParameter("image"); String page = "ProfileCartoonBook.jsp"; System.out.println("username"+username); System.out.println("password"+password); System.out.println("firstname"+firstname); System.out.println("lastname"+lastname); System.out.println("sex"+sex); System.out.println("cartoon"+cartoon); System.out.println("address"+address); System.out.println("county"+county); System.out.println("phone"+phone); System.out.println("email"+email); System.out.println("image"+image); MembersBeanmem = new MembersBean(); mem.setMember_username(username); mem.setMember_password(password); mem.setMember_firstname(firstname); mem.setMember_lastname(lastname); mem.setMember_sex(sex); mem.setMember_cartoon(cartoon); mem.setMember_address(address); mem.setMember_county(county); mem.setMember_phone(phone); mem.setMember_email(email); mem.setMember_image(image); MemberDAOmemdao = new MemberDAO(); memdao.addMembers(mem);
  • 32. 32 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL RequestDispatcher dispatcher = request.getRequestDispatcher(page); if(dispatcher != null){ dispatcher.forward(request, response); System.out.println("send coeplete"); } } } ตัวอย่างการใช้งาน 1. Run ในหน้า JSP กรอกข้อมูลสมัครชิก
  • 33. 33 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 2. เมื่อกดตกลงแล้ว ข้อมูลก็จะมาแสดงหน้านี้ และข้อมูลทั้งหมดก็จะ เก็บลงในตาราง Database ดังรูป
  • 34. 34 การเพิ่มข้อมูลลงฐานข้อมูลด้วยภาษา JSP&SQL 3.ข้อมูลสมาชิกได้เก็บลงใน Database เรียบร้อยแล้ว และ member_id ก็เป็นตัวเรียงลำาดับของสมาชิกที่เข้ามาสมัค รก่อนหลัง