Java เชื่อมต่อ MySQL ตอนที่ 5

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

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

การพัฒนาโปรแกรมมันก็คล้าย ๆ กับงานเขียน ที่บางทีเขียนไปแล้วก็อยากจะแก้ อยากจะลองวิธีใหม่ ๆ หรือเกิดปัญหาขึ้นในอนาคตแล้วยอนกลับมามอง มันจะทำให้เรารู้สึกเหมือนตอนเริ่มเรียนเขียนโปรแกรมใหม่ ๆ พอเวลาผ่านไป พอเรามีความรู้มากขึ้นแล้วย้อนกลับมามองโค้ดเดิม ๆ เราจะรู้สึกตกใจว่า “โหวววว!! เราเขียนอะไรลงไปเนี้ย ??? ” (ใครเคยเป็นบ้าง แวะมาเล่าให้ฟังได้นะคะ 🙂 )

ยังจำโค้ดเดิมได้หรือเปล่า ? ไปดูภาพที่ 1 กันเลยค่ะ

java-connect-mysql-step-5-1

ภาพที่ 1 โค้ดไฟล์ Database1.java

        ในการเขียนโปรแกรมภาษาจาวา เราใช้เมธอด main() ในการเริ่มต้นรัน (run) โปรแกรม จากภาพที่ 1 โค้ดการเชื่อมต่อฐานข้อมูลของเราก็อยู่ภายใต้เมธอด main() สิ่งที่เราจะทำต่อไปก็คือ เราจะแยกเมธอด main() ออกมาเขียนอีกคลาสนึ่ง แล้วค่อยเขียนคำสั่งเพื่อเรียกให้คลาสที่เชื่อมต่อฐานข้อมูลทำงาน

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

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

คลิกขวาที่โปรเจ็กต์ เลือก “New” -> “Java Package…” ตั้งชื่อแพ็คเกจว่า “abc.test” แล้วกดปุ่ม “Enter

java-connect-mysql-step-5-2

คลิกขวาที่แพคเกจ “abc.test” เลือก “New” -> “Java Main Class…” ตั้งชื่อว่า “TestDatabase2” แล้วกดปุ่ม “Enter

java-connect-mysql-step-5-3

เราก็จะได้ไฟล์ “TestDatabase2.java” พร้อมกับเมธอด main() ที่ใช้ในการ Run มาด้วย (ลบคอมเมนต์ออกก็ได้) ชื่อไฟล์เราสื่อว่าจะทดสอบ “TestDatabase2.java” แต่เรายังไม่มีไฟล์ “Database2.java” เลย เราจะไปสร้างไฟล์นี้เอาไว้ภายใต้แพคเกจ “abc.database” ค่ะ

คลิกขวาที่แพคเกจ “abc.database” เลือก “New” -> “Java Class..” ตั้งชื่อว่า “Database2.java” (สังเกตว่าเวลาเราต้องการไฟล์ที่มีเมธอด main() เราจะเลือก “Java Main Class…” แต่หากจะสร้างไฟล์ธรรมดา เราจะเลือก Java Class…) เมื่อเสร็จแล้วเราจะได้โครงสร้างโปรเจคดังภาพด้านล่าง

java-connect-mysql-step-5-4

คลิกเข้าไปที่ไฟล์ “Database2.java” แล้วเขียนโค้ดในการเชื่อมต่อฐานข้อมูลลงไปค่ะ ตอนนี้เราไม่มีเมธอด main() มาคลุมโค้ดของเราไว้ เราก็สร้างเมธอดใหม่ขึ้นมาค่ะ ตั้งชื่อว่า connection() ไม่มีการรับ-คืนค่าใด ๆ ดูตัวอย่างด้านล่างค่ะ

ภายใต้เมธอด connection()  ที่สร้างขึ้นมาใหม่ เราก็แค่ไปคัดลอกโค้ด (หรือจะเขียนใหม่ก็ได้) การเชื่อมต่อฐานข้อมูลมาใส่ไว้ แค่นี้ก็เสร็จแล้วค่ะ ลองดูโค้ดในไฟล์ Database2.java ทั้งหมดด้านล่างค่ะ

มาที่คลาส “TestDatabase2.java” เราจะเขียนโค้ดเพื่อทดสอบการทำงานของคลาส “Database2.java” ด้วยโค้ดต่อไปนี้

เราทำการสร้างออบเจ็กต์ของคลาส “Database2.java” ด้วยคำสั่ง   Database2 db2 = new Database2();  เมื่อเรามีออบเจ็กต์ของคลาส “Database2.java” แล้ว เราก็สามารถใช้งานเมธอดที่อยู่ภายในได้โดยการใช้จุด (.) เพื่อเรียกให้เมธอดนั้น ๆ ทำงาน   db2.connection();  เมื่อคลิกขวาที่ไฟล์นี้แล้วเลือก Run File ก็จะได้ผลลัพธ์ดังภาพด้านล่าง

java-connect-mysql-step-5-5

พอจะสังเกตเห็น throws Exception  ที่อยู่กับเมธอด connection() และเมธอด main() มั้ยคะ ? เราเขียนมันขึ้นมาเพื่ออะไร ? ไม่เขียนเลยจะได้หรือไม่ ? พบกับคำตอบได้ในตอนต่อไปค่ะ


เรื่องที่เกี่ยวข้อง
– Java Basic


 

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

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

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