Basic JavaWeb ตอนที่ 4 Connect Datebase

ก่อนที่จะทำการเขียนโปรแกรมเชื่อมต่อฐานข้อมูลให้เราทำการสร้างฐานข้อมูลและตารางกันก่อนนะคะ โดยมีรายละเอียดคำสั่งตามภาพด้านล่าง…

basic_javaweb_4_01

ภาพที่ 1 คำสั่งสร้างฐานข้อมูล ชื่อ basic_javaweb

คำอธิบายภาพที่ 1
1. คำสั่ง SQL ในการสร้างฐานข้อมูล
2. ปุ่ม Execute คลิกเพื่อประมวลผลคำสั่ง SQL
3. แสดงผลลัพธ์

basic_javaweb_4_02

ภาพที่ 2 สร้างตาราง ชื่อ Book

สร้างตาราง Book โดยมีโครงสร้างและรายละเอียดดังภาพที่ 2

ตอนนี้ฐานข้อมูลและตารางของเราก็พร้อมแล้วต่อไปเรามาสร้างโปรเจ็กต์ใน Netbeans กันค่ะ ไปที่เมนู File -> New Project… หรือกด(Ctrl+Shift+N) จะปรากฏหน้าจอดังภาพที่ 3

basic_javaweb_4_03

ภาพที่ 3 การสร้าง Project | Choose Project

อธิบายภาพที่ 3
1. ในส่วนของหมวดหมู่ (Categories) เลือก Java Web
2. ส่วนโปรเจ็กต์ (Projects) เลือก Web Application หลังจากนั้นคลิกที่ปุ่ม “Next”

basic_javaweb_4_04

ภาพที่ 4 การสร้าง Project -> Next | Name and Location

Project Name : Basic_JavaWeb

Project Location : เลือกที่เก็บโปรเจ็กต์ตามต้องการ

และทำเครื่องหมายถูกที่ : Use Dedicated Folder for Storing Libraries แล้วกด “Next” จะพบภาพที่ 5

basic_javaweb_4_05

ภาพที่ 5 การสร้าง Project | Server and Settings

ในส่วนของ Server จะมี Server ให้เลือกตามที่เราได้ติดตั้งเอาไว้ ใช้อะไรก็ได้ค่ะ ถ้าไม่ชอบสองตัวนี้จะลงตัวอื่น ๆ ก็ได้ตามสะดวกค่ะ ในตอนนี้เราเลือก Tomcat ไปก่อน ส่วน Context Path เราใช้ชื่อโปรเจ็กต์ไปก่อนก็ได้ค่ะ ถ้าอยากเปลี่ยนก็แก้ไขทีหลังได้ เสร็จแล้วคลิกปุ่ม “Next” เราจะพบหน้าจอแรกของเราเป็นดังภาพที่ 6

basic_javaweb_4_06

ภาพที่ 6 หน้าตาโปรเจ็กต์ Basic_JavaWeb

ทดสอบ Run โปรแกรมให้ได้ผลลัพธ์ตามภาพที่ 6 นะคะ ขอให้ผ่านตรงนี้ไปด้วยกันก่อนจะไปเริ่มเชื่อมต่อฐานข้อมูลและสร้าง Model กันค่ะ ในเรื่องของการเลือก Browser ในการแสดงผลสามารถเลือกได้ตามต้องการตามภาพที่ 7 ค่ะ

basic_javaweb_4_07

ภาพที่ 7 เลือก Web Browser ในการประมวลผล

เราจะมาเริ่มต้นเขียนโปรแกรมเชื่อมต่อฐานข้อมูลกัน ในภาคที่ 2 นี้เป็นเรื่องของ Model ล้วน ๆ เราจะไม่ได้ไปข้องเกี่ยวอะไรกับส่วนของ View เลย เพราะฉะนั้นอะไรที่ไม่ได้ใช้ก็ปิดไปค่ะ เราจะไม่ได้ Run โปรแกรมแบบที่ผ่านมา แต่เราจะสร้างคลาสจาวาที่มีเมธอด Main ขึ้นมาเพื่อใช้ทดสอบโปรแกรมแทนค่ะ เริ่มต้นด้วยการสร้าง Package ขึ้นมาก่อน ตั้งชื่อว่า basic.javaweb.database ดังภาพที่ 8

basic_javaweb_4_08

ภาพที่ 8 การสร้าง Package

basic_javaweb_4_09

ภาพที่ 9 การสร้าง Package (ต่อ)

ต่อมาเรามาเราจะสร้าง Java Class… กันไฟล์แรกตั้งชื่อว่า DatabaseInfo.java เราจะใช้เก็บตัวแปรที่เป็น static final เอาไว้เพื่อให้เรียกใช้ได้ทันทีและห้ามเขียนทับ ตามภาพที่ 10

basic_javaweb_4_10

ภาพที่ 10 การสร้าง Java Class…

basic_javaweb_4_11

ภาพที่ 11 การสร้าง Java Class… (ต่อ)

เมื่อสร้างคลาสเสร็จแล้วเราจะลบ Comment ออกไป และเขียนโค้ดดังต่อไปนี้ ซึ่งเป็นเพียงแค่การประกาศและกำหนดค่าให้กับตัวแปร ในส่วนของการเชื่อมต่อฐานข้อมูลเราจะสร้างในคลาสต่อไปค่ะ

basic_javaweb_4_12

ภาพที่ 12 ประกาศตัวแปรและกำหนดค่า

หมายเหตุ : อย่าลืมเปลี่ยน USERNAME และ PASSWORD ให้ตรงตามฐานข้อมูลในเครื่องของคุณด้วยนะคะ

จากโค้ดนี้มีตัวแปรที่น่าสนใจคือ URI เพื่อให้การเพิ่มข้อมูลลงไปในฐานข้อมูลไม่กลายเป็นเครื่องหมาย ??? เราจะกำหนดค่าตัวแปรนี้เพิ่มดังนี้

basic_javaweb_4_13

ภาพที่ 13 การกำหนดค่าให้กับตัวแปร URI

หลังจากนั้นก็สร้าง Java Class… ขึ้นมาภายใต้ Package เดียวกันและตั้งชื่อว่า Database.java โดยมีโค้ดดังต่อไปนี้

basic_javaweb_4_14

ภาพที่ 14 โค้ดในไฟล์ Database.java

เมื่อมีการเชื่อมต่อฐานข้อมูลก็ต้องมีการปิดการเชื่อมต่อนั้นด้วย เราเขียนเมธอด Close เพิ่มในคลาส Database.java ทำหน้าที่ปิดการเชื่อมต่อฐานข้อมูลดังภาพที่ 15

basic_javaweb_4_15

ภาพที่ 15 โค้ดในไฟล์ Database.java | Method Close

เป็นอย่างไรบ้างคะ เจอโค้ดไป 2 ไฟล์ มีศัพท์คำไหนหรือคำสั่งอะไรที่ไม่ทราบบ้าง ? การที่เราจะอ่านโค้ดในไฟล์ DatabaseInfo.java เข้าใจจะต้องมีความรู้เกี่ยวกับเรื่องต่อไปนี้ค่ะ

การสร้าง Class
การประกาศตัวแปร
Access Modifier
static
final

ต่อมาสำหรับคลาส Database.java ต้องมีความรู้ในเรื่องต่อไปนี้

constructor
การใช้ try… catch
การเชื่อมต่อฐานข้อมูล MySQL
การใช้คำสั่ง if

มาถึงจุดที่น่าคิดแล้ว… จะเห็นว่าเรื่องราวทั้งหมดที่เราต้องรู้ล้วนแล้วแต่อยู่ในหนังสือเล่มแรก ๆ ที่เราต้องศึกษาทั้งนั้นเลย เพียงแต่ว่าตอนนั้นเราอาจจะมองไม่เห็นภาพว่าจะเอาไปใช้จริง ๆ ตอนไหนแค่นั้นเอง การศึกษาอะไรบางอย่างเราควรจะศึกษาให้ละเอียดลึกซึ้ง ไม่ใช่ว่ารู้แค่ผ่าน ๆ จำแค่ว่าเค้าใช้กันแบบนี้ก็จบ เราควรหาเหตุผลอยู่เสมอว่า ทำไม่ต้องเขียนแบบนี้ ? เขียนแบบอื่นได้หรือไม่ ? มีการเขียนในรูปแบบที่ดีกว่านี้ไหม ? เป็นต้น การทำงานในชีวิตจริงเราจะมั่วไม่ได้นะคะ ทุก ๆ อย่างต้องมีการวางแผน ทำอย่างไรโปรแกรมของเราจะมีประสิทธิภาพมากที่สุด ? เรื่องของความมั่นคงและความเสถียรต้องอาศัยการมีความรู้ที่ละเอียดลึกซึ้งไม่ใช่การเขียนแบบมั่ว ๆ เพื่อให้โปรแกรมได้ผลลัพธ์ตามต้องการเท่านั้น

การที่เรามีความรู้จริง ๆ จะทำให้เราทำงานได้ง่ายขึ้น ยอมอดทนลำบากในช่วงแรกแค่นั้นค่ะ ถ้าคิดจะมั่วเราก็ได้แต่มั่วไปทั้งชีวิต เกิดข้อผิดพลาดทีต้องแก้เป็นวัน ๆ ทั้ง ๆ ที่ความเป็นจริงเราสามารถพัฒนาโปรแกรมให้รัดกุมได้ หรือการที่เรามีความรู้จริง ๆ การจะหาเหตุผลของข้อผิดพลาดและแก้ไขมันได้ในระยะเวลาที่รวดเร็วนั้นก็มีความเป็นไปได้สูง เพราะฉะนั้นหากคุณติดปัญหาไม่เข้าใจคำสั่งใด จงอย่าลังเลที่จะหาคำตอบนะคะ ^_^

คราวนี้เรามาทำการทดสอบกันค่ะว่าไฟล์ Database.java ที่เราสร้างขึ้นมาจะมีความสามารถตามที่เราเขียนโค้ดเอาไว้หรือไม่ คือสามารถเชื่อมต่อ และปิดการเชื่อมต่อกับฐานข้อมูลได้

สร้าง Package ขึ้นมาเพื่อเก็บไฟล์ที่ใช้ในการทดสอบทั้งหมด ชื่อว่า basic.javaweb.test

และสร้าง Java Main Class… ขึ้นมาภายใต้ Package นี้ (เลือก New -> Java Main Class…) ตั้งชื่อว่า TestConnect.java และพิมพ์โค้ดต่อไปนี้ลงไปและบันทึกให้เรียบร้อยค่ะ หลังจากนั้นคลิกขวาในพื้นที่ว่างแล้วเลือก Run File… หรือคลิกปุ่ม Shift+F6 จะได้ผลลัพธ์ตามภาพที่ 16

basic_javaweb_4_16

ภาพที่ 16 โค้ดในไฟล์ TestConnect.java | Method Main

เป็นอย่างไรบ้างคะได้ผลลัพธ์ตรงกันหรือเปล่า ? พยายามหัดอ่านข้อผิดพลาดบ่อย ๆ ด้วยนะคะ มันจะทำให้เราแก้ปัญหาได้เร็วขึ้น ไม่ต้องตกใจและไม่ต้องกลัวค่ะ จะเป็นโปรแกรมเมอร์ต้องเจอเรื่องแบบนี้ทุกวันอยู่แล้ว อ่านให้เข้าใจว่ามันเกิดข้อผิดพลาดที่ตรงไหน ศัพท์คำไหนไม่รู้ความหมายก็หาเครื่องมือช่วยแปลค่ะ โปรแกรมเมอร์เก่ง ๆ ล้วนแล้วแต่อ่านข้อผิดพลาดเก่งทั้งนั้น เวลาเราไปศึกษาการเขียนโปรแกรมที่ไหนก็ตามนอกจากจะทำให้ได้ผลลัพธ์ตรงกันแล้ว เวลาเจอข้อผิดพลาดก็ต้องตรวจสอบให้ตรงกันด้วยนะคะ ถ้ามีความแตกต่างกันอย่าลืมตั้งข้อสังเกตด้วยค่ะว่า มันเกิดจากอะไร ? และก็จัดการหาคำตอบซะเพียงแค่นี้เราก็จะเก่งขึ้นเรื่อย ๆ ค่ะ

กลับมาที่ข้อผิดพลาดของเราพอจะเดาออกหรือยังคะว่าเกิดจากอะไร ?

คำว่า “ClassNotFound” ก็คือหาคลาสไม่เจอค่ะ คลาสที่ว่าอยู่ใน package ชื่อ com.mysql.jdbc

สุดท้ายคือชื่อคลาส Driver เรายังไม่ได้เพิ่ม Library ของ MySQL JDBC Driver นั่นเอง ทำให้มันหาไม่เจอ ทำการเพิ่ม Library ให้เรียบร้อยตามภาพที่ 17 และลอง Run ไฟล์ใหม่อีกครั้งค่ะ
basic_javaweb_4_17

ภาพที่ 17 ขั้นตอนการเพิ่ม Library

basic_javaweb_4_18

ภาพที่ 18 Run ใหม่อีกครั้งหลังการเพิ่ม Library

เป็นอย่างไรบ้างคะ บทความนี้ยาวเลย กว่าจะเชื่อมต่อฐานข้อมูลเสร็จเป็นบทความที่ยาวมากเลย อาจจะเป็นเพราะมีขั้นตอนในการใช้โปรแกรมด้วยเลยทำให้บทความยืดเยื้อออกไป กลัวว่าคนที่ใช้ Netbeans เป็นครั้งแรกจะไม่เข้าใจน่ะค่ะ บทความต่อ ๆ ไปอะไรที่บอกวิธีทำไปแล้วเราจะไม่บอกซ้ำนะคะ เราจะได้เอาเวลาไปทุ่มเทกับการเขียนโค้ดมากขึ้น ถ้าอ่านบทความนี้แล้วยังไม่เข้าใจ หรือยังไม่ได้ผลลัพธ์ตามภาพก็เขียนคำถามไว้ด้านล่างได้เลยค่ะ ในตอนต่อไปเราจะสร้าง Model กันแล้วนะคะ แล้วพบกันในบทความต่อไปค่ะ


>>> เรียนรู้ MVC ด้วย โปรเจ็กต์ Basic JavaWeb

ภาคที่ 1 ภาพรวมของระบบ (Overview)

Basic JavaWeb ตอนที่ 1 Introduction
Basic JavaWeb ตอนที่ 2 Overview
Basic JavaWeb ตอนที่ 3 Structure

ภาคที่ 2 Model (ส่วนติดต่อกับข้อมูล)
Basic JavaWeb ตอนที่ 4 Connection Datebase
Basic JavaWeb ตอนที่ 5 Create Model
Basic JavaWeb ตอนที่ 6 Create DAO
Basic JavaWeb ตอนที่ 7 Method getAll()
Basic JavaWeb ตอนที่ 8 Method isInsert()
Basic JavaWeb ตอนที่ 9 Method isUpdate()
Basic JavaWeb ตอนที่ 10 Method isDelete()
Basic JavaWeb ตอนที่ 11 Method getById()
Basic JavaWeb ตอนที่ 12 Method getByKeyword()

ภาคที่ 3 Controller และView (ส่วนของการควบคุมการทำงานและการแสดงผล)

ออกแบบ Template
– HTML
– CSS
– JavaScript
– JSP (EL, JSTL)

เชื่อมต่อ Controller และ View

เชื่อมต่อ Model -> Controller -> View

สรุป


ธมนวรรณ มณีจันทร์

ธมนวรรณ มณีจันทร์

|:- เราเชื่อมั่นว่าการเสียสละและการแบ่งปันจะทำให้โลกใบนี้สวยงามมากขึ้น ทุกๆ จุดเริ่มต้นของการเรียนรู้ นำไปสู่การเรียนรู้ถัดไป เว็บไซต์แห่งนี้ขอเป็นส่วนหนึ่งของการแบ่งปันความรู้ที่ไม่มีที่สิ้นสุด มาร่วมกันผลักดันโลกของเราให้หมุนไปพร้อมกับพลังแห่งความรักด้วยกันนะคะ :) >>> |:- About Me! -:|