คลังเก็บผู้เขียน: wit

16. การดาวน์โหลดและใช้งาน WindowBuilder

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

16. การดาวน์โหลดและใช้งาน WindowBuilder

            สำหรับผู้ที่ยังไม่มี WindowBuilder ก็ควรจะทำการดาวน์โหลดมาไว้ใช้เพื่อให้การสร้าง GUI เป็นเรื่องที่ง่ายๆ

1.ขั้นตอนแรกให้พิมพ์คำค้นหา “nindow builder” ลงใน google.com จะปรากฏตัวเลือกการค้นหาขึ้นมาดังภาพ

 

รูป16-1

2.เลือกตัวแสดงผลการค้นหาดังภาพ http://www.eclipse.org/windowbuilder/

 

รูป16-2

            จากนั้นเลือกตรง Download จากนั้นในหน้าถัดมาก็จะปรากฏลิ้งค์สำหรับการดาวน์โหลดแต่จะต้องทำการเลือกดาวน์โหลดให้ตรงกับเวอร์ชันของ eclipse ที่เรากำลังใช้อยู่

 

รูป16-3

            ดังนั้นจึงตรวจสอบให้เรียบร้อยว่ากำลังใช้ eclipse รุ่นไหนอยู่ เพื่อจะได้ทำการเลือกดาวน์โหลดได้อย่างถูกต้อง ขั้นตอนการตรวจมีดังนี้

1.      เลือก Help ในแถบ menu จากนั้นเลือก About Eclipse ในช่องล่างสุด

 

รูป16-4

2.      จะปรากฏหน้าต่างดังรูปข้างล่างพร้อมกับเวอร์ชันของ eclipse ที่กำลังใช้อยู่

 

รูป 16-5

            กลับมาที่การดาว์โหลด WindowBuilder เลือกเวอร์ชันที่ตรงกับ eclipse อย่างในกรณีข้างบนคือ Kepler ก็เลือก Kepler เป็นต้น โดยคลิ๊กคำว่า link

 

รูป16-6

ได้ลิ้งค์ตามที่ต้องการ ให้ค้างหน้านี้เอาไว้ แล้วกลับไปที่ eclipse

 

รูป 16-7

            เมื่อกลับมาที่ eclipse ให้ทำตามขั้นตอนดังต่อไปนี้

–          เลือกที่ Help เหมือนเดิม ต่อมาเลือกที่ Install New Software

 

รูป16-8

–          เอาลิ้งค์ที่เราเปิดค้างเอาไว้เมื่อกี้มาใส่ในช่องดาว และข้างล่างรอสักครู่จะมีช่องสำหรับเลือกให้เลือกทุกช่อง(ติ๊กถูกทุกช่อง)

 

รูป16-9

–          จากนั้นกดปุ่น Next จนจบ จะมีข้อความถามว่า restart หรือไม่ ตอบตกลง ทำการ restart 1 รอบเมื่อเข้า eclipse มา ก็จะสามารถใช้งาน WindowBuilder ได้ โดยให้ไปที่ other

 

รูป16-10

ได้ WindowBuilder มาใช้งาน

 

รูป16-11

 

 

 

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

17. การจัดการอีเวนท์(Event Handling)

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

17. การจัดการอีเวนท์(Event Handling)

 

            หลังจากสามารถสร้าง GUI ให้ได้หน้าต่างแบบที่ต้องการเป็นที่เรียบร้อยก็จะพบว่าเมื่อรันโปรแกรมจะปรากฏหน้าจอ GUI ขึ้นมาก็จริงแต่ไม่สามารถตอบสนองได้ เช่น กดปุ่มก็ไม่เกิดอะไรขึ้น นั่นก็เป็นเพราะว่ายังไม่ได้มีการกำหนดหน้าที่ของคอมโพเนนท์ต่างๆใน GUI ซึ่งการจะกำหนดการกระทำต่างๆให้ GUI เรียกว่าการจัดการกับอีเวนท์ หรือ Event Handling

การจัดการกับอีเวนท์

            Event แปลว่าเหตุการณ์ ซึ่งหมายถึงเหตุการณ์ต่างๆที่เกิดขึ้นกับโปรแกรม เช่น เกิดเหตุการณ์คลิ๊กโดยเมาส์ การกดปุ่มที่แป้นพิมพ์ (เช่นปุ่ม Enter) แต่การสร้าง GUI เฉยๆไม่ได้กำหนดการรับมือกับเหตุการณ์ต่างๆหากอยากให้โปรแกรมใช้งานได้ก็ต้องรับมือกับอีเวนท์ด้วย ซึ่งก่อนอื่นควรทำความรู้จักกับอีวเนท์ประเภทต่างๆก่อน ซึ่งจะแนะนำจาก ประเภทอีเวนท์ว่าอีเวนท์นั้นๆใช้ทำอะไร โดยจะ new anonymous inner class ของอินเตอร์เฟซใดและใช้เมท็อดอะไร

1.ActionEvent

การใช้งาน : อีเวนท์นี้มีไว้สำหรับจัดการกับการคลิ๊ก JButton และ  การใช้ปุ่ม Enter การดับเบิลคลิ๊กและการเลือกใน MenuItem

อินเตอร์เฟซ : ActionListener

เมท็อด : actionPerformed(ActionEvent)

2.ComponentEvent

การใช้งาน : เป็นตัวบอกให้รู้ว่าใช้คอมโพเนนท์อะไรบ้าง

อินเตอร์เฟซ : ComponentListener

เมท็อด : componentMoved(ComponenEvent), componentHidden(ComponenEvent), componentShow(ComponenEvent)

3.ContainerEven

การใช้งาน :สำหรับการเพิ่มและลบคอนเทนเนอร์

อินเตอร์เฟซ : ContainerListener

เมท็อด : componentAdded(ContainerEvent), componentRemoved(ContainerEvent),

4.FocusEvent

การใช้งาน : เมื่อผู้ใช้เลื่อนอุปกรณ์อินพุตมาชี้ยังอ็อปเจ็คของส่วนประกอบกราฟฟิกใดๆ

อินเตอร์เฟซ : FocusListener

เมท็อด : focusGained(FocusEvent), focusLost(FocusEvent)

5.ItemEvent

การใช้งาน : เมื่อทำการเลือกรายการใน List หรือ Checkbox

อินเตอร์เฟซ : ItemListener

เมท็อด : itemStateChaned(ItemEvent)

6.KeyEvent

การใช้งาน : เมื่อการทำงานเกี่ยวข้องแป้นพิมพ์

อินเตอร์เฟซ : KeyListener

เมท็อด : keyPressed(KeyEvent), keyReleased(KeyEvent), keyTyped(KeyEvent),

7.MouseEvent

การใช้งาน : เมื่อต้องการใช้งาน คลิ๊ก(clicked) เคลื่อนที่(moved) ลากวาง(dragged) โดยใช้ได้กับ JButton JCheckboc, JScrollPane, JTextField เป็นต้น

อินเตอร์เฟซ : MouseListener

เมท็อด : mousePressed(MouseEvent) กดค้างไว้, mouseReleased(MouseEvent) ปล่อยเมาส์, mouseClicked(MouseEvent) คลิ๊กเมาส์

8.MouseMotionEvent

การใช้งาน : คล้ายกับ 7

อินเตอร์เฟซ : MouseMotionListener

เมท็อด : mouseDragged(MouseEvent), mouseMoved(MouseEvent),

การใช้งาน

            ขั้นแรกต้องรู้ก่อนว่าต้องการให้คอมโพเนนท์ใดทำงาน เช่น ง่ายๆและใช้บ่อยๆเลยก็คือปุ่ม(JButton) ก็ต้องนึกต่อไปอีกว่าจะให้ปุ่มทำงานอะไรได้ ก็เช่นคลิ๊กได้หรือกด Enter ก็ได้ด้วย

            ขั้นต่อมาก็ให้มาดูที่อีเวนต์ว่าว่ามีอีเวนต์ตัวไหนที่สามารถทำให้ปุ่มทำงานตามที่ต้องการได้บ้าง ให้เลือกให้เข้าคู่ถูกต้องกับการทำงาน

            ขั้นตอนการเรียกใช้อีเวนต์เป็นดังนี้

–          สร้างตัวแปรอ็อปเจ็คของคอมโพเนนท์(สร้างอยู่แล้วอัตโนมัติ ถ้าสร้างจาก WindowBuilder)

–          ให้อ็อปเจ็คนั้นเรียกเมท็อดที่ชื่อaddตามด้วยชื่อของอินเตอร์เฟส addxxxx(parameter) เช่น addActionListener

–          ภายในพารามิเตอร์ให้สร้าง anonymous inner class ของอินเตอร์เฟสและ อิมพลีเมนต์ เมท็อดของอินเตอร์เฟสให้ทำงานตามที่ต้องการ(จริงๆใช้งานได้หลายแบบแต่ที่นี้จะใช้แบบ anonymous inner classเพราะสามารถ generate ได้อัตโนมัติ)

แต่พูดไปแล้วอาจจะงงต้องลองดูตัวอย่างโครงสร้าง ซึ่งจะออกมาลักษณะนี้

ชื่อคลาสคอมโพเนนท์ ชื่อตัวแปรอ็อปเจ็ค = new ชื่อคลาสคอมโพเนนท์ (“text”);

                        ชื่อตัวแปรอ็อปเจ็ค.addอินเตอร์เฟส(new ชื่ออินเตอร์เฟส() {

                                    public void ชื่อเมท็อด(พารามิเตอร์แบบอ็อปเจ็ค) {

                                    }

                        });

                        ชื่อตัวแปรอ็อปเจ็ค.setBounds(x, y, width, height);

                        contentPane.add(ชื่อตัวแปรอ็อปเจ็ค);

x, y คือตำแหน่งตามแนวแกน x และ y , width, heightคือขนาดกว้างสูง

แต่การเขียนโค๊ตเหล่านี้ก็ไม่จำเป็นเพราะ WindowBuilder สามารถ generate ให้ได้อัตโนมัติอีกเช่นเดียวกัน แต่สิ่งควรรู้คือตำแหน่งสำหรับการ อิมพลีเมนท์เมท็อด

วิธีจัดการอีเวนต์ด้วย WindowBuilder

1.      เอาเมาส์ชี้ไปที่คอมโพเนนท์ที่ต้องการจัดการกับอีเวนต์ จากนั้นให้คลิ๊กขวา จะมีคำว่า Add event handler ให้เลือกอันนี้

 

รูป17-1

เมื่อเลือกที่ Add event handlerจะปรากฏให้เลือกมาต้องการทำอะไร ใช้เมท็อดอะไรดังรูป

 

รูป17-2

เมื่อเลือกให้ทำอะไรแล้วโค๊ตก็จะมาปรากฏในหน้า source

 

รูป17-3

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

จะสาธิตตัวอย่างการใช้งานอย่างง่ายที่สุดนั่นคือ จะเขียนโปรแกรมให้ผู้ใช้กรอกข้อความเข้ามา จากนั้นให้มี JDialog ทักทายตอบออกไป

เริ่มจากสร้าง GUI สำหรับช่องกรอกชื่อ และปุ่มสำหรับ Enter

 

รูป17-4

จัดการกับอีเวนต์ของปุ่ม Enter ด้วย ActionListener

 

 

รูป17-5

ทำการอิมพลีเมนท์เมท็อด actionPerformed  ด้วยการให้แสดง JDialog ออกมาเมื่อมีการคลิ๊กหรือ Enter ที่ปุ่มนี้ โดยให้แสดงข้อความ Hello แล้วตามด้วยชื่อที่ผู้ใช้ได้หรอกเข้ามาโดย getText() มาจากช่อง JTextField ที่สร้างไว้

 

รูป17-6

ผลลัพธ์ที่ได้ คือเมื่อกดปุ่มจะมี Dialog ขึ้นมา ถ้าไม่ทำการจัดการกับอีเวนต์เวลากดปุ่มก็จะไม่ได้เกิดอะไร

 

รูป 17-7

 

 

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

18. การจัดการข้อมูลด้วยระบบฐานข้อมูล

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

18. การจัดการข้อมูลด้วยระบบฐานข้อมูล

            บทนี้จะเป็นการพูดถึงภาพรวมของระบบฐานข้อมูลซึ่งใช้สำหรับจัดเก็บข้อมูลอย่างมีประสิทธิภาพ

Software Process

            การบวนการทำซอฟท์แวร์มีด้วยการทั้งหมด 5 ส่วน

1.การเก็บข้อมูลตรวจสอบความต้องการ (Requirement)

            เป็นการเก็บและวิเคราะห์ข้อมูลสำหรับโปรแกรมที่กำลังจะทำ ซึ่งประกอบไปด้วย

–          Function

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

–          Non-function

เช่น ความสวยงาม ความเร็วของการทำงานเป็นต้น

2. การออกแบบ(Design)

            ออกแบบระบบฐานข้อมูล ออกแบบรูปลักษณ์และการออกแบบแนวทางของโปรแกรม

3.การเขียนจริงจากการออกแบบ(Implement)

            นำสิ่งที่ออกแบบมาเขียนเป็นโค๊ด

4.การทดสอบประเมินผล(Test and Evaluation)

            หลังจากเขียนเสร็จต้องมีการทดสอบอย่างถี่ถ้วนเพื่อไม่ให้เกิดหรือเกิดข้อผิดพลาดน้อยที่สุด

5.การใช้งานและการรักษา(Deployment and Maintenance)

            นำไปติดตั้งในเครื่องของลูกค้าและดูแลรักษาหากเกิดข้อผิดพลาด

ทำไมต้องเป็นฐานข้อมูล

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

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

            การจัดการฐานข้อมูลจะมีสิ่งที่เรียกว่า DBMS หรือ Database Management Systems ที่จะมาช่วยในการเป็นเครื่องมือสำหรับตอบโต้ระหว่างฐานข้อมูลกับผู้ใช้ และมีภาษา SQL(Structured Query Language) ที่ช่วยให้ผู้ใช้สามารถเพิ่มเติม เปลี่ยนแปลงหรือลบข้อมูลได้การติดต่อกับ DBMS จะทำโดยตรงหรือทำผ่านโปรแกรมที่เขียนขึ้นมาก็ได้(พวกโปรแกรมที่เขียนจาก JAVA VB เป็นต้น)

รูป1-1

เซอร์เวอร์ของฐานข้อมูล

            MySql Database Server

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

Oracle หรือ Object – Relational Database Management System (ORDBMS)

มีความสามารถทำงานได้ทั้งในรูปแบบ Rational และบางคุณสมบัติของ Object Oriented เป็นผลิตภัณฑ์จากบริษัทออราเคิล ออราเคิลเซิร์ฟเวอร์ มีความสามารถโดดเด่นในด้านการจัดการฐานข้อมูล มีความน่าเชื่อถือสูง ด้วยเทคโนโลยี Rollback Segment ซึ่งเป็นลิขสิทธิ์ของบริษัทออราเคิล โดยปกติ Log file หรือไฟล์ที่เก็บ Transaction ของระบบ

            ซึ่งทั้งสองแบบดังกล่าวเป็นการสร้างฐานข้อมูลแบบเชิงความสัมพันธ์

แบบจำลองข้อมูล

            ในส่วนนี้จะพูดถึงคำศัพท์พื้นฐานที่สำคัญต่อการสร้างแบบจำลองฐานข้อมูล

แบบจำลองฐานข้อมูล

มีทั้ง 5 แบบจำลองได้แก่

1.แบบจำลองฐานข้อมูลลำดับชั้น (Hierarchical Database Model)

      เป็นการสร้างฐานข้อมูลแบบ Top-Down คล้ายกับโครงสร้างของต้นไม้ในโครงสร้างข้อมูล

2.แบบจำลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) ***

      การสร้างฐานข้อมูลเป็นตาราง ได้รับความนิยมเพราะใช้ง่ายเวลาสร้างแล้วมาดูจะไม่งงเท่าแบบอื่นๆ

3.แบบจำลองฐานข้อมูลเครือข่าย (Network Database Model)

คล้ายกับ แบบจำลองฐานข้อมูลลำดับชั้น แต่ว่าแต่ละโหนดสามารถมีความสัมพันธ์กับโหนดอื่นและแต่ละโหนดก็สามารถมีหลายพ่อได้

4.แบบจำลองฐานข้อมูลเชิงวัตถุ (Object-Oriented Database Model)

      เป็นการออกแบบฐานข้อมูลโดยใช้แนวคิด OOP

5.แบบจำลองฐานข้อมูลแบบมัลติไดเมนชัน(Multidimensional Database Model)

      เป็นการเก็บข้อมูลด้วยตารางหลายมิติเหมาะกับงานคลังข้อมูล

 

–          Entities  คือสิ่งที่เกี่ยวข้องกับข้อมูลที่ต้องการจะเก็บ เช่น คน สิ่งของ สถานที่ เช่น  entities พนักงาน entities หนังสือ

–          Attributes คือคุณลักษณะของ entities กล่าวคือเมื่อพูดถึงโทรทัศน์ก็จะต้องมีคุณลักษณะคือมีขนาดหน้าจอ มีปุ่มกด สำหรับ entities พนักงานก็ต้องมีชื่อ นามสกุล ที่อยู่ อีเมล เป็นต้น

–          ความสัมพันธ์(relationships)  จะเป็นความสัมพันธ์ระหว่าง entities เช่นในร้านหนังสือต้องมี entitiesผู้ยืม และ entitiesหนังสือ ก็ต้องกำหนดความสัมพันธ์ว่า ผู้ยืมสามารถยืมได้ 1 เล่ม หรือหลายเล่มเป็นต้น โดยความสัมพันธ์จะมีอยู่ 3 ความสัมพันธ์ ได้แก่ความสัมพันธ์แบบหนึ่งต่อหนึ่ง(one-to-one) ความสัมพันธ์แบบหนึ่งต่อหลาย(one-to-many) ความสัมพันธ์แบบหลายต่อหลาย(many-to-many) เขียนย่อได้เป็น 1:1, 1:M, M:N

–          คีย์(Key) ในการสร้างฐานข้อมูลแบบสัมพันธ์ (Relational Database) จะมีการเก็บข้อมูลในรูปแบบตารางซึ่งประกอบไปด้วยแถวแนวตั้งและแถวแนวนอน จะมีการคีย์ลงไปด้วยเพื่อสร้างความแตกต่างของ attribute ที่มีคีย์และเพื่อกำหนดความสัมพันธ์ตามที่ต้องการ

-คีย์หลัก (Primary Key)

เป็นคีย์ที่ใช้ในการอ้างอิง โดยจะต้องไม่เก็บข้อมูลว่าง

-คีย์นอก (Foreign Key)

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

ข้อดี-ข้อเสียของฐานข้อมูล

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

 

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

19. แผนภาพ E-R (Entity-Relationship Diagram)

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

19. แผนภาพ E-R (Entity-Relationship Diagram)

            การเขียนแผนภาพ E-R อยู่ในขั้นตอนของการออกแบบฐานข้อมูล เป็นการจัดข้อมูลต่างๆให้มีระเบียบและมีความสัมพันธ์กัน การเขียนแผนภาพE-R ก็คือการวางแผนให้เห็นภาพโดยรวมเพื่อทำให้การสร้างฐานข้อมูลง่ายและลดข้อผิดพลาด โดยในการเขียนแผนภาพ E-R จะเป็นการแสดงให้เห็นว่า entities และ attributes ใดบ้างรวมถึงสิ่งเหล่านั้นมีความสัมพันธ์กันแบบใด

การเขียนแผนภาพ

            Entity

            คือสิ่งที่เราสนใจ เช่น พนักงาน หนังสือ หรืออาจะเป็นสถานที่ โดยจะเห็นได้ว่า entity นั้นเป็นคำนามที่มีคุณลักษณะได้ ดังนั้นการตั้งชื่อให้กับ entity จะตั้งชื่อด้วยคำนามและเป็นตัวอักษรตัวใหญ่ เช่น STUDENT, EMPLOYEE, STORE, REGISTRATION, HIRING

            Entity จะเขียนอยู่ในรูปกรอบสี่เหลี่ยม                              นอกจากนี้ entity ยังมีอีก 2 แบบ ได้แก่

            1.Strong Entity เป็น entity หลัก ที่สามารถเขียนได้เลย

            2.Weak Entity เป็น entity ที่ไม่ได้เกิดขึ้นเองแต่ต้องอยู่กับ entity หลัก ถ้า entity หลักถูกลบ weak entity จะถูกลบไปด้วย เขียนแทนด้วย

 

รูป 2-1

            เมื่อมีนักเรียนเราก็อาจจะต้องเก็บข้อมูลของผู้ปกครองด้วย ในกรณีที่มีเหตุฉุกเฉินจะได้สามารถติดต่อผู้ปกครองของเด็กได้ ดังนั้น STUDENT_PARENTS จึงเป็น weak entity เพราะเมื่อนักเรียนหายไปก็จะไม่มีการเก็ยข้อมูลของผู้ปกครอง

            Attribute

            คุณลักษณะของ entity  เช่นนักเรียนก็ต้องมี ชื่อ รหัสนักเรียน ที่อยู่ เบอร์โทร โดยจะใช้สัญลักษณ์วงรี โดยที่ primary key จะถูกขีดเส้นใต้ การตั้งชื่อจะตั้งด้วยตัวเล็กแต่ถ้ามีมากกว่าหนึ่งคำให้ใช้ตัวใหญ่สลับ

            หากต้องการจะสร้าง entity ของนักเรียน ก็จะประกอบไปด้วย รหัส ชื่อ และที่อยู่ จะได้รูปดังข้างล่าง

 

รูป2-2

            แต่จะเห็นได้ว่าในที่อยู่นั้นไม่ได้เก็บข้อมูลแค่อย่างเดียวแต่ต้องเก็บ เลขที่ หมู่บ้าน ถนน แขวง เขต จังหวัด ดังนั้นเราจะต้องแตกออกอีก

 

รูป2-3

            Attribute เช่น stuName เรียกว่า simple attribute ส่วน stuAdress เรียกว่า Composite attribute คือประกอบไปด้วย attribute ย่อยๆอีก

            แต่อย่างไรก็ตามยังมี attribute บางอันที่สามารถเก็บข้อมูลได้มากกว่า 1 ค่า เรียกว่า multivalued Attribute เช่น เบอร์โทรของนักเรียนอาจมีได้มากกว่าหนึ่งเบอร์โทร วิธีแก้ปัญหาก็คือการแตกออกเป็น attribute ย่อยๆ เช่น phone_1, phone_2, phone_3 แต่จะเห็นได้ว่าวิธีนี้อาจจะยังไม่มีประสิทธิภาพเพราะการสร้าง attribute ไว้มากๆเพื่อรองรับการใส่ข้อมูลนั้น อาจเป็นการสร้างทิ้งไว้เปล่าๆ ดังนั้นควรแก้สร้าง entity ขึ้นมาให้และให้มีความสัมพันธ์เชื่อมกับ entity ของนักเรียน

 

รูป2-4

            ความสัมพันธ์(Relationship)

            ความสัมพันธ์เป็นสิ่งที่ใช้เชื่อม entity ใช้บอกว่าแต่ละ entity มีความสัมพันธ์กันแบบใด โดยจะใช้สัญลักษณ์คล้ายๆบนไพ่ข้าวหลามตัด และในปลายของแต่ละข้างให้ระบุความสัมพันธ์ของ entity ลงไป ดูจากรูป 2-4 คือมีความสัมพันธ์แบบ หนึ่งต่อหลาย นักเรียนหนึ่งคนมีได้หลายเบอร์โทร

            ความสัมพันธ์แบบที่เป็นปัญหาก็ได้แก่ความสัมพันธ์แบบหลายต่อหลาย(M:N) เพราะเป็นรูปแบบของความสัมพันธ์ที่ทำให้คนดูงงไปด้วย เช่น ร้านยา – ยาหลายชนิดมีลูกค้ามาซื้อได้หลายคน ในขณะที่ ลูกค้าหลายคนก็ซื้อยาได้หลายชนิด ปัญหาแบบนี้คือควรแยกการกระทำของความสัมพันธ์ออกมาเป็นอีก entity หนึ่ง เช่นในที่นี้มี 2 entity ได้แก่ยากับลูกค้ามีการกระทำระหว่างกันคือการซื้อ ก็แยกการซื้อออกมาเป็นอีก 1 entity

 

รูป2-5

 

รูป2-6

Super-type และ sub-type

            จะคล้ายกับ inheritance คลาสแม่คลาสลูก คือมี entity ที่มี attribute ที่ entity อื่นก็จะมี attribute แบบเดียวกัน เช่น entity ของ พนักงานในบริษัท ประกอบด้วย attribute คือ id, name, address, phone แต่บริษัทมีพนักงานหลายๆส่วนที่ทำงานเฉพาะด้านต่างกัน เช่นพนักงานที่เป็นวิศวกร พนักงานฝ่ายขาย พนักงานบัญชี พิสูจน์อักษร หรืออาจมีพนักงาน part time พนักงานทั้งหลายเหล่านี้ก็ต้องมีการเก็บข้อมูลที่เหมือนกับ entity ของ พนักงานในบริษัทคือเก็บ id, name, address, phone แต่ก็ต้องมี attribute เพิ่มเติมเช่น วิศวกร อาจต้องมี attribute คือ ด้านเฉพาะ เงินเดือน ส่วนพนักงานฝ่ายขาย ก็มี attribute ที่เป็นโบนัสจากการขาย และพนักงานพิสูจน์อักษร  ก็มี attribute เช่น ภาษาที่ตรวจได้ ตรวจงานได้วันละกี่หน้า เป็นต้น ในที่นี้ entity ของ พนักงานในบริษัท ถือเป็น super-type ส่วน พนักงานต่างๆเป็น sub-type การเขียน super-type sub-type ใช้แทนด้วยเครื่องหมายยูเนียน (U)

 

รูป2-7

 

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

20. แผนภาพ E-R และความสัมพันธ์

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

20. แผนภาพ E-R และความสัมพันธ์

การแปลงแผนภาพ E-R มาเป็นความสัมพันธ์

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

การทำ entity ให้เป็นความสัมพันธ์

            เวลาเปลี่ยนแผนภาพมาเป็นความสัมพันธ์ให้เขียน attribute ทั้งหมด

รูป3-1

ความสัมพันธ์ STUDENT คือ stuID, stuName, stuRoom

            Composite attribute

            ในกรณีของ composite attribute ให้เขียนเฉพาะ attribute ที่อยู่ใน composite attribute ก็พอ เช่น

รูป3-2

ความสัมพันธ์ STUDENT คือ stuID, stuName, houseNo, Province, postalCode

            Multivalued attribute

            ส่วน multivalued attribute ให้แตกออกมาเป็นอีกหนึ่งตารางแล้วโยงความสัมพันธ์กัน

รูป 3-3

                                          ID, stuID, phone

ได้เป็น

รูป3-4

            เมื่อต้องสร้างตารางในฐานข้อมูลให้เอาความสัมพันธ์ที่ได้เขียนไว้ไปสร้างตารางได้เลย

Normalization

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

ความซ้ำซ้อนและสิ่งผิดปกติ(Redundancies and Anomalies)

            Normalization เป็นกระบวนแก้ไข ดังนั้นจึงต้องรู้ก่อนว่ามีอะไรที่ต้องแก้ไข ก็ได้แก่สิ่งที่เรียกว่าความซ้ำซ้อนและสิ่งผิดปกติ

            สมมติถึงสถานการณ์ของร้านชาบู ชื่อ “ชาบูชาบู้” ที่มีสาขาอยู่หลายสขา และต้องจ้างพนักงานหลายคนในแต่ละสาขา อาจมีการเก็บตารางดังต่อไปนี้

CHABUCHABU_EMPLOYEE

chaempID gender chaempName position branchID branchAddress
Cha153 M ตอเต่า เต่าตอ ผู้จัดการ CB001 กรุงเทพ
Cha110 F มอม้า คึกคัก ผู้จัดการ CB005 หัวหิน
Cha393 M ปอปลา ตากลม พนักงาน CB003 เชียงใหม่
Cha652 M ฌอเฌอ คู่กัน พนักงาน CB002 กระบี่
Cha758 F ชอช้าง อ้วนจัง ผู้ช่วยผู้จัดการ CB001 กรุงเทพ
Cha405 F นอหนู มากมาย พนักงาน CB002 กระบี่
Cha223 M มอแมว ไม่มอง พนักงาน CB005 ประจวบคีรีขันธ์

 

            แต่การสร้างตารางแบบข้างบนจะพบว่ามีการเก็บข้อมูลซ้ำซ้อนกันตรง branchID กับ branchAddress มีการเก็บรหัสและที่อยู่ของสาขาซ้ำๆ เช่น กรุงเทพก็ปรากฏถึง 2 ครั้ง

            แล้วการซ้ำซ้อนเป็นความผิดปกติเป็นปัญหาอย่างไร

1.ปัญหาเวลาจะเพิ่มข้อมูล(insert)

– เวลาเพิ่มข้อมูลพนักงานต้องเสียเวลาเพิ่มข้อมูลสาขาที่พนักงานสังกัดด้วย เสียเวลา

– เวลาเพิ่งทำสาขาใหม่เสร็จจะเพิ่มข้อมูลสาขาใหม่ยังไม่ได้ต้องมีพนักงานสังกัดก่อน เพราะไม่สามารถปล่อยให้มีการเก็บข้อมูลว่างในช่องอื่นๆได้ ยุ่งยาก

2. ปัญหาเวลาเปลี่ยนแปลง(update)

– สมมติว่าสัญญาเช่าตึกของสาขา CB005 หัวหินหมดอายุและได้ทำการไปเช่าตึกใหม่ต้องเปลี่ยนที่อยู่ก็ต้องแก้ไขตรงช่อง branchAddress ในพนักงานทุกคน เสียเวลามากเวลามากและอาจลืมแก้ของพนักงานบางคนอีกทำให้มีความผิดพลาดได้

            3. ปัญหาเวลาลบข้อมูล(delete)

– สมมติว่าพนักงานรหัส Cha393 นาย ปอปลา ตากลม ต้องการลาออกโดยที่ยังไม่มีพนักงานมาสมัครอยู่สังกัดสาขา CB003 เชียงใหม่ ข้อมูลของสาขานี้จะถูกลบไปทั้งๆที่ยังไม่ได้ปิดกิจการข้อมูลก็หายซะแล้ว

การแก้ไขก็ควรจะแยกตารางที่มีความซ้ำซ้อนเกิดขึ้นมาไว้ในอีกตาราง

CHABUCHABU_EMPLOYEE

chaempID

gender

chaempName

position

branchID

Cha153

M

ตอเต่า เต่าตอ

ผู้จัดการ

CB001

Cha110

F

มอม้า คึกคัก

ผู้จัดการ

CB005

Cha393

M

ปอปลา ตากลม

พนักงาน

CB003

Cha652

M

ฌอเฌอ คู่กัน

พนักงาน

CB002

Cha758

F

ชอช้าง อ้วนจัง

ผู้ช่วยผู้จัดการ

CB001

Cha405

F

นอหนู มากมาย

พนักงาน

CB002

Cha223

M

มอแมว ไม่มอง

พนักงาน

CB005

 

CHABUCHABU_BRANCH

branchID

branchAddress

CB001

กรุงเทพ

CB002

กระบี่

CB003

เชียงใหม่

CB005

ประจวบคีรีขันธ์

 

การพึ่งพา(Dependencies)

            Partial dependency

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

            Transitive dependency

            Attribute ที่ไม่ได้เป็นคีย์ แต่ระบุค่าของ attribute อื่นๆในความสัมพันธ์ได้

กลับมาที่ normalization

            กล่าวโดยสรุป normalization คือการหลีกเลี่ยง

1. ต้องไม่มี multivalued attribute

2. ไม่มีการซ้ำซ้อน

3. ไม่มีการพึ่งพา

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

21. การใช้งาน Xampp

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

21. การใช้งาน Xampp

Xampp เป็นโปรแกรม Apache web server ไว้จำลอง web server เพื่อไว้ทดสอบ สคริปหรือเว็บไซต์ในเครื่องของเรา โดยที่ไม่ต้องเชื่อมต่ออินเตอร์เน็ตและไม่ต้องมีค่าใช้จ่ายใดๆ ใช้ง่าย และเมื่อโหลด Xamppมาแล้วโปรแกรม Xampp จะมาพร้อมกับ

1.      PHP ภาษาสำหรับพัฒนาเว็บแอพลิเคชั่นดังนั้นจะเห็นคำว่า php อยู่บ่อยๆใน xampp

2.      MySQL ฐานข้อมูล,

3.      Apache จะทำหน้าที่เป็นเว็บ เซิร์ฟเวอร์

4.      OpenSSL

5.      phpMyadmin ระบบบริหารฐานข้อมูลที่พัฒนาโดย PHP เพื่อใช้เชื่อมต่อไปยังฐานข้อมูล  สนับสนุนฐานข้อมูล MySQL และ SQLite

การใช้งาน

            หาไอคอน  XAMPP Control Panel แล้วก็เขาโปรแกรม

 

รูป 4-1

            หลังจาหปรากฎหน้าต่างแบบข้างบนให้กด Start ตรง ช่องแรก Apache และช่องสอง MySQL เมื่อกดแล้วจะได้แบบนี้

 

รูป 4-2

หลังจากที่เปิดเรียบร้อยแล้วทดสอบการทำงานของ XAMPP ด้วยการเรียก http://localhost ในเว็บบราวเซอร์ แต่หากเข้าไม่ได้เพราะบางเครื่อง อาจตั้งไว้เป็นอย่างอื่นแล้วให้ลองเขา127.0.0.1 ซึ่งก็คือ Loopback IP  ซึ่ง IP นี้เมื่อเรียกใช้จะลูป กลับเข้ามาที่ NIC ของเครื่องตัวเอง ซึ่งมีค่าเท่ากับ localhost

 

รูป4-3

ในช่องกรอบสี่เหลี่ยมสีฟ้าจะมีคำว่า phpMyAdmin อยู่ในเข้าตรงนี้

 

รูป4-4

เมื่อเข้ามาในหน้า phpMyAdmin จะมีส่วนสำคัญอยู่ 2 ส่วน ได้แก่

1.เป็นส่วนของเครื่องมือต่างๆ

2.ฐานข้อมูลที่มีอยู่

การสร้างฐานข้อมูลใหม่

–          ให้เลือกตรงคำว่า ฐานข้อมูล ในช่องของเครื่องมือ

 

รูป 4-5

 

รูป4-6

ลองสร้างฐานข้อมูลชื่อ test001 เมื่อเข้ามาในฐานข้อมูลก็กดไป จะได้หน้าจอประมาณข้างล่าง

 

รูป4-7

อธิบายรูป

ข้างบนจะมีคำว่า Add ไป หมายถึงเราสามารถเพิ่มตารางขึ้นมาได้ตามจำนวนของเลขที่ใส่

ชื่อ – ชื่อของ attribute

ชนิด – ชนิดของข้อมูลที่จะเก็บ

INT จำนวนเต็ม

VARCHAR ตัวอักษรที่ต้องจำกัดขนาด

TEXT ตัวอักษรไม่ต้องจำกัดขนาด

DATE เก็บวัน

ความยาว – จำกัดความยาวไหม เช่นตัวอักษรต้องจำกัดความยาว

ดัชนี – กำหนด attribute เช่น เป็น primary key ไหม

A_I – auto increment หมายถึงให้มันรันลำดับเลขเองไหม

ตัวอย่างตารางที่สร้างเสร็จแล้ว

 

รูป4-8

ในหน้าเปิดดูจะแสดงข้อมูลที่อยู่ในฐานข้อมูลนี้

 

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

22. การเชื่อมฐานข้อมูลกับจาวาด้วย JDBC

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

22. การเชื่อมฐานข้อมูลกับจาวาด้วย JDBC

 

            JDBC ย่อมาจาก Java Database Connectivity หรือก็คือตัวเชื่อมต่อระหว่างโปรแกรมจาวากับฐานข้อมูล โดยมีพวกคลาสและอินเทอร์เฟสรวมกันเรียกว่า JDBC API แต่ตัว JDBC API ไม่ได้ติดต่อกับฐานข้อมูลโดยตรงแต่เป็นการทำงานร่วมกันกับ JDBC Driver โดยการติดต่อผ่าน JDBC Driver Manger ซึ่งเป็นตัวสร้างการเชื่อมต่อจริงๆระหว่าง JDBC Driver กับฐานข้อมูล ใช้การ import java.sql.DriverManager

ขั้นตอนการติดตั้ง JDBC มี 7 ขั้นตอน ที่ต้องตรวจสอบและทำให้ครบ

1.      โหลด JDBC Driver

2.      กำหนด URL

3.      สร้างการเชื่อมต่อ

4.      สร้างอ็อปเจ็คของ Statement

5.      ประมวลผล(execute) SQL statement

6.      แสดงผล

7.      ปิดการเชื่อมต่อ

ขั้นที่ 1 : โหลด JDBC Driver

            JDBC Driver อย่างที่เพิ่งพูดไปคือตัวเชื่อมต่อระหว่างโปรแกรมจาวากับฐานข้อมูลดังนั้นจึงจำเป็นต้องโหลดมาให้เรียบร้อยก่อน ซึ่ง Driver ก็มีให้เลือกมากมายซึ่งจะต่างกันออกไปตามชนิดของฐานข้อมูล โดยที่ Library ของ JDBC Driver จะเป็น ไฟล์ .jar

            การเรียก JDBC Driver ทำดังนี้

Class.forname(“ชื่อคลาสที่โหลด JDBC Driver”);

            ต้องครอบด้วย try-catch ด้วยเพื่อดักจับ ClassNotFoundException สิ่งที่ต้องป้องกันคือป้องกันการหา .jar ไม่เจอ เดี๋ยวโปรแกรมรันไม่ได้

            การโหลดLibrary โหลดโดยการพิมพ์คำค้นหาในกูเกิล

ตาราง JDBC Driver

ระบบจัดการฐานข้อมูล

JDBC Driver

Library File(.jar)
MySQL com.mysql.jdbc.Driver mysql-connector-java-nn-bin.jar
Microsoft SQL Server com.micorsoft.sqlsever.jdbc.SQLServerDriver sqljdbc4.jar
Oracle oracle.jdbc.OracleDriver ojdbc6.jar
DB2 com.ibm.db2.jcc.DB2Driver db2jcc.jar
PostgreSQL Org.postgresql.Driver Postgresql-<version>.jdbc3.jar

 

การโหลดJDBC ของ MySQL

1.      พิมพ์คำค้นหา mysql ในเว็บ google.com เลือก Downloads

 

รูป5-1

2.      เลือก MySQL Connectors

 

รูป5-2

3.      เลือก Connectors ในที่นี้เลือก connectors/j สำหรับจาวา

 

รูป5-3

4.ดาวน์โหลดและติดตั้งใน

 

รูป5-4

การ import JDBC มาเป็น Library ในเครื่อง

1.เรื่องโปรเจ็คที่ต้องการ import JDBC เข้ามา จากนั้นเลือก Properties

 

รูป5-5

2.เลือก Java Build Path จากนั้นเลือก Add External JARs เลือก JDBC

 

 

รูป5-6

 

ขั้นที่ 2 : กำหนด URL

            กำหนด URL ที่จะใช้เชื่อมต่อ จะต้องกำหนดเป็นตัวแปรชิด String ส่วนวิธีกำหนด URL จะต่างกันไปตาม JDBC Driver ที่ใช้

ระบบจัดการฐานข้อมูล

URL

MySQL jdbc:mysql:// ชื่อหรือIPของserver : port / ชื่อฐานข้อมูล
Microsoft SQL Server jdbc:sqlserver:// ชื่อหรือIPของserver : port / ชื่อฐานข้อมูล
Oracle(OCI) jdbc:oracle:oci@ ชื่อหรือIPของserver : port / ชื่อฐานข้อมูล
Oracle(Thin) jdbc:oracle:thin@ ชื่อหรือIPของserver : port / ชื่อฐานข้อมูล
DB2 jdbc:db2:// ชื่อหรือIPของserver : port / ชื่อฐานข้อมูล
PostgreSQL jdbe.postgresql:// ชื่อหรือIPของserver : port / ชื่อฐานข้อมูลs

 

ขั้นที่ 3 : สร้างการเชื่อมต่อ

            สร้างการเชื่อมต่อโดยให้ คลาส DriveManager เรียกเมธ็อด getConnection() โดยการเชื่อมต่อจะต้องครอบด้วย try-catch สำหรับดักจับ SQLException e

การเชื่อมต่อทำได้ดังนี้

            Connection ชื่อตัวแปรอ็อปเจ็ค = DriverManager.getConnection(URL, username, password)

ขั้นที่ 4 : สร้างอ็อปเจ็คของ Statement

อ็อปเจ็ค Statement จะทำหน้าที่ส่ง SQL Statement ไปประมวลผล เชื่อมต่อโดยการเอาตัวแปรที่เก็บ URL มาเรียกเมธ็อด createStatement();

Statement ชื่อตัวแปรอ็อปเจ็ค = ตัวแปรที่เชื่อม URL.createStatement();

ขั้นตอนที่ 5 : ประมวลผล(execute) SQL statement

            การประมวลผลทำโดยนำตัวแปร Statement มาประมวลผล โดยเมธ็อดที่นำประมวลผลบ่อยได้แก่ executeQuery และ executeUpdate

executeQuery

ใช้กับคำสั่ง SELECT statement โดยจะทำการคืนค่าออกมาเป็นตัวที่เลือก

ResultSet ตัวแปรอ็อปเจ็ค = ชื่อตัวแปรอ็อปเจ็คstatement. executeQuery(SQL statement)

executeUpdate

            ใช้กับคำสั่ง INSERT, UPDATE, DELETE statement

            int  ตัวแปรที่จะรับค่าจากเมธ็อด = ชื่อตัวแปรอ็อปเจ็คstatement. executeUpdate(SQL statement)

ขั้นตอนที่ 6 : แสดงผล

            การแสดงผลคือการเอาสิ่งที่ประมวลผลได้มาแสดง การแสดงผลจะใช้คำสั่งลูปโดยใช้ next(); มาช่วยหาว่ายังมีตัวที่ต้องแสดงผลอยู่หรือไม่

ขั้นตอนที่ 7 : ปิดการเชื่อมต่อ

            หลังจากเขียนคำสั่งครบหมดแล้วขั้นตอนต่อไปก็ต้องทำการปิดการเชื่อมต่อ โดยทำการปิดด้วยเมธ็อด close สิ่งที่จะต้องปิดเป้นตามลำดับดังต่อไปนี้ ResultSet Statement Connection

ชื่อตัวแปร ResultSet.close();

ชื่อตัวแปร Statement.close();

ชื่อตัวแปร Connection.close();

อธิบายพร้อมตัวอย่างโค๊ดจริง

            (จะอธิบายเฉพาะส่วนที่เกี่ยวข้องกับหัวข้อนี้เท่านั้น เพราะนี้เป็นโค๊ดจริงอาจมีส่วนที่ไม่เกี่ยวข้องประกอบอยู่ด้วย)

 

รูป 5-7

บรรทัดที่ 3 : import sql ทั้งหมดด้วยเครื่องหมาย *

บรรทัดที่ 13 : สร้างอ็อปเจ็คของ Connection ด้วยตัวแปรชื่อ con

บรรทัดที่ 14 : สร้างอ็อปเจ็คของ Statement ด้วยตัวแปรชื่อ st

บรรทัดที่ 15 : สร้างอ็อปเจ็คของ ResultSet ด้วยตัวแปรชื่อ rs

ขั้นที่ 2

บรรทัดที่ 17 : สร้างสตริงของ url โดยเอาข้อมูลมาจาก GlobalData(คลาสอื่น)

ขั้นที่ 3

บรรทัดที่ 22 : สร้างการเชื่อมต่อ

ขั้นที่4

บรรทัดที่ 23 : สร้าง Statement

ขั้นที่ 5

บรรทัดที่ 24 : ส่ง Statement ไปประมวลผล

ขั้นที่ 6

บรรทัดที่ 26 : แสดงผลข้อมูล

บรรทัดที่ 36 : ปิด try-catch ด้วย SQLException

ขั้นที่ 7 ปิดการเชื่อมต่อ

 

รูป5-8

 

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

23. การทำ MVC

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

23. การทำ MVC

                MVC หรือที่ย่อมาจาก Model View Controller เป็นรูปแบบของการเขียนโปรแกรมให้ดูเรียบร้อยโดยใช้หลักการของ OOP คือการแบ่งส่วนของโปรแกรมออกเป็นส่วนย่อยๆจากนั้นจึงนำมาประกอบรวมกันเป็นโปรแกรม 1 โปรแกรม ซึ่ง MVC ก็คล้ายกันแต่เป็นเรื่องของรูปแบบของโปรแกรมนั่นเอง เพื่อให้โปรแกรมนั้นดูง่ายและง่ายต่อการแก้ไขจัดการคือการเขียนโปรแกรมจะถูกแบ่งออกเป็น 3 ส่วนได้แก่ Model View และ Controller ตามชื่อ

1.Model

เป็นอ็อปเจ็คหนึ่งที่ทำหน้าเป็นตัวข้อมูล เวลาที่ข้อมูลใดๆก็ตามที่ผู้ใช้ป้อนเข้ามาจะเก็บอยู่ในรูปของอ็อปเจ็คที่เรียกว่า โมเดลนี้ ซึ่งอ็อปเจ็คโมเดลจริงๆแล้วก็คือ entity นั่นเอง เช่น Employee, Student, Product เป็นต้น

2. View

            คือส่วนที่จะเป็นหน้าตาของโปรแกรมที่ผู้ใช้จะใช้งานจากตรงนี้ ไม่ว่าจะเป็นการกรอกข้อมูลหรือดูผลลัพธ์ วิวจริงๆแล้วก็คือส่วนที่เรียกว่า GUI(Graphic User Interface)

3.Controller

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

ตัวอย่างการทำ MVC

ขั้นที่ 1 สร้างโปรเจ็คมาหนึ่งโปรเจ็ค จากนั้นสร้างแพ็คเก็จมา3แพ็จเก็จ

 

รูป6-1

(1)   3 แพ็คเกจ ให้ตั้งชื่อ m v c แต่ c หรือ controller นั้นเป็นส่วนของการดำเนินการทางวิทยาศาสตร์จึงอาจไม่ได้ใช้งานสำหรับโปรแกรมง่ายๆธรรมดา ให้สร้างอีกหนึ่งแพ็คเก็จชื่อ common สำหรับเก็บตัวแปร GlobalData

(2)   อย่าลืมเอาตัวเชื่อมต่อฐานข้อมูลใส่มาด้วย(อ่านจากเรื่อง JDBC)

 

ขั้นที่ 2 ออกแบบและสร้าง Frame ในส่วนแพ็คเก็จ v สำหรับการเป็น GUI ที่ติดต่อกับผู้ใช้งาน

 

รูป6-2

            ในรูปนี้สร้าง 2 ส่วนคือส่วนสำหรับการเพิ่มเติม เปลี่ยนแปลงหรือลบข้อมูลออก ในขนาดที่มีช่องทางซ้ายไว้สำหรับแสดงข้อมูล

ขั้นที่ 3 ในส่วนของแพ็คเก็จ common สร้างคลาสชื่อ GlobalData มีหน้าที่เก็บตัวแปรสำหรับการเชื่อมต่อฐานข้อมูล

 

รูป6-3

 

ขั้นที่ 4 มาถึงแพ็คเก็จ m ซึ่งมีหน้าที่แปลงข้อมูลมาเป็นอ็อปเจ็คที่เหมือนกับในฐานข้อมูล จึงต้องสร้างตัวแปรที่ชื่อเหมือนกับในฐานข้อมูล

 

รูป6-4

            สร้างคลาสชื่อ UserDB สำหรับสร้างตัวแปรที่เหมือนกับฐานข้อมูลของเรา ย้ำว่าต้องเหมือน!!!

หลังจากนั้นสร้างอีกคลาสชื่อ UserDBManager สำหรับเชื่อมต่อ JDBC และสำหรับการจัดการข้อมูลจำพวก เพิ่ม ลบ เปลี่ยนแปลง

 

รูป6-5

            ในบทที่เกี่ยวกับ JDBC ได้อธิบายเรื่องการต่อกับฐานข้อมูลไปแล้วดังนั้นจะให้ดูเกี่ยวกับการใช้คำสั่ง SQL เพิ่มข้อมูลลงไป

บรรทัดที่ 70 : ใช้คำสั่ง INSERT INTO โดย x มาจากพารามิเตอร์ข้อมูลชนิด UserDB เข้ามา

 

รูป6-6

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

24. ภาษา SQL

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

24. ภาษา SQL

 

            ภาษา SQL หรือ Structured Query Language เป็นภาษาที่ช่วยจัดการงานพื้นฐานของข้อมูล เช่นการจัดเก็บ การปรับปรุงและการลบข้อมูล ซึ่งสามารถใช้งานได้จากทั้งการพิมพ์แบบโต้ตอบที่ทำให้ได้ผลออกมาทันที(ทำในโปรแกรมฐานข้อมูล)    หรือทำแบบฝังไว้ในโปรแกรม(แล้วก็ทำปุ่มกดเอา)เอาก็ได้

ประเภทคำสั่ง SQL

            มีด้วยกันทั้งหมด 3 ประเภท

1.ภาษานิยามข้อมูล(Data Definition Language, DDL)

            เป็นภาษาสำหรับสร้างฐานข้อมูล ประกอบไปด้วยคำสั่งสำหรับสร้างตาราง แก้ไขและลบตาราง สร้าง attribute และกำหนาชนิดข้อมูล (ดูเรื่องการใช้ xampp)

2.ภาษาจัดการข้อมูล(Data Manipulation Language, DML)

            เป็นภาษาสำคัญสำหรับเพิ่ม แก้ไข ลบและเรียกดูข้อมูลในฐานข้อมูล ซึ่งมีความสำคัญมากๆและจะได้กล่าวถึงต่อไป

3.ภาษาควบคุมข้อมูล(Data Control Language, DCL)

            เป็นคำสั่งสำหรับความปลอดภัยของข้อมูล ใช้สำหรับควบคุมฐานข้อมูลจำกัดคนที่จะเข้าถึงฐานข้อมูล

 

ภาษาจัดการข้อมูล หรือ DML

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

 

รูป7-1

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

สำหรับการศึกษาโค๊ด SQLจะใช้ตัวอย่างตารางข้อมูลของร้านชาบูชาบู้เป็นตัวอย่าง(ลองสร้างฐานข้อมูลตามนี้แล้วพิมพ์ใน SQL ดู)

CHABUCHABU_EMPLOYEE

chaempID gender chaempName position branchID branchAddress
Cha153 M ตอเต่า เต่าตอ ผู้จัดการ CB001 กรุงเทพ
Cha110 F มอม้า คึกคัก ผู้จัดการ CB005 หัวหิน
Cha393 M ปอปลา ตากลม พนักงาน CB003 เชียงใหม่
Cha652 M ฌอเฌอ คู่กัน พนักงาน CB002 กระบี่
Cha758 F ชอช้าง อ้วนจัง ผู้ช่วยผู้จัดการ CB001 กรุงเทพ
Cha405 F นอหนู มากมาย พนักงาน CB002 กระบี่
Cha223 M มอแมว ไม่มอง พนักงาน CB005 ประจวบคีรีขันธ์

 

CHABUCHABU_BRANCH

branchID

sub_district

province

postalCode

CB001

บางรัก

กรุงเทพ

10500

CB002

เมืองกระบี่

กระบี่

81000

CB003

ช้างคลาน

เชียงใหม่

50000

CB005

หัวหิน

ประจวบคีรีขันธ์

77110

 

INSERT

            คำสั่งสำหรับการเพิ่มข้อมูลลงในฐานข้อมูล

INSERT INTO ชื่อตาราง

VALUES (‘สิ่งที่ใส่ในฐานข้อมูล 1’, ‘สิ่งที่ใส่ในฐานข้อมูล 2’, … ,‘สิ่งที่ใส่ในฐานข้อมูล n’);

ตัวอย่างเช่น

            INSERT INTO CHABUCHABU_BRANCH

            VALUES (‘CB004’, ‘ปทุมวัน’, ‘กรุงเทพ’, ‘10330’);

สังเกตว่าการเพิ่มข้อมูลลงในตารางจำเป็นต้องใส่ให้ตรงกับตำแหน่งของตารางในฐานข้อมูล เพราะแต่ละช่องในตารางนั้นจะระบุชนิดของข้อมูลเอาไว้ หากใส่ไม่ตรงกันก็จะไม่ถูกต้องมีการเก็บข้อมูลที่ผิดพลาด

หากมีช่องใดช่องที่ไม่ได้ใส่ค่าอะไรลงไปให้เขียนเป็น NULL เช่นเขียนว่า ปทุมวัน ก็รู้แล้วว่าอยู่กรุงเทพ ก็เลยไม่กรอกตรงกรุงเทพลงไป ก็เลยใส่ NULL

INSERT INTO CHABUCHABU_BRANCH

            VALUES (‘CB004’, ‘ปทุมวัน’, NULL, ‘10330’);

            หรืออาจทำการระบุไว้ก่อนก็ได้ว่าจะให้ใส่แค่ตารางอะไร

INSERT INTO CHABUCHABU_BRANCH (branchID, sub_district, postalCode)

            VALUES (‘CB004’, ‘ปทุมวัน’, ‘10330’);

 

UPDATE

            เป็นคำสั่งสำหรับการปรับปรุงเปลี่ยนแปลงข้อมูล

            UPDATE ชื่อตาราง

SET แถวที่1 = ข้อมูลที่ต้องการเปลี่ยน1, แถวที่2 = ข้อมูลที่ต้องการเปลี่ยน2 …

WHERE เงื่อนไข(เผื่อมีหลายแถวแต่อยากเปลี่ยนข้อมูลแค่แถวเดียว)

ตัวอย่างเช่น

            ต้องการปรับฐานเงินเดือนพนักงานขึ้นทุกคน

UPDATE CHABUCHABU_EMPLOYEE

SET salary = salary*0.5

 

หรืออาจต้องการปรับหน้าที่จากพนักงานเป็นผู้ช่วยผู้จัดการ ก็ต้องใส่เงื่อนไขตรง WHERE

UPDATE CHABUCHABU_EMPLOYEE

SET salary = 20000, position = ‘ผู้ช่วยผู้จัดการ’;

WHERE chaempID = ‘Cha223’;

DELETE

            เป็นคำสั่งสำหรับการลบข้อมูลออกจากตาราง

            DELETE FROM ชื่อตาราง

            WHERE เงื่อนไข

การลบข้อมูลเมื่อใส่ชื่อตารางลงไปแล้ว หากไม่ต้องการลบทั้งตารางอย่าลืมใส WHERE เด็ดขาด !!! ไม่งั้นมันจะหายไปทั้งหมดทั้งตาราง

            DELETE FROM CHABUCHABU_BRANCH

            WHERE branchID = ‘CB005’;

 

SELECT

            คำสั่งสำหรับการเลือก โดยคำสั่งนี้จะมีวิธีการใช้งานหลายวิธีดังนั้นจึงควรจำให้ดีๆ

1.      หากต้องการทั้งหมด ทั้งตาราง

SELECT *

FROM ชื่อตาราง

เครื่องหมาย * หมายถึงเลือกทุกแถวมาแสดง

 

2.      ต้องการเลือกดูบางแถว

SELECT ข้อมูล, ข้อมูล2, … , ข้อมูล n

FROM ชื่อตาราง

ตัวอย่างเช่น

SELECT chaempName, position

FROM CHABUCHABU_EMPLOYEE

chaempName position
ตอเต่า เต่าตอ ผู้จัดการ
มอม้า คึกคัก ผู้จัดการ
ปอปลา ตากลม พนักงาน
ฌอเฌอ คู่กัน พนักงาน
ชอช้าง อ้วนจัง ผู้ช่วยผู้จัดการ
นอหนู มากมาย พนักงาน
มอแมว ไม่มอง พนักงาน

 

 

3.      การใช้ DISTINCT

เป็นการไม่เลือกดูข้อมูลซ้ำ เช่นเราอยากรู้ว่าเราจ้างพนักงานมีตำแหน่งอะไรบ้าง ถ้าเรียกดู position ก็จะมีพนักงานๆ ผู้จัดการๆ ปรากฏขึ้นมาซ้ำๆ ก็ใช้ DISTINCT มาช่วย

SELECT DISTINCT position

FROM CHABUCHABU_EMPLOYEE

position

ผู้จัดการ

พนักงาน

ผู้ช่วยผู้จัดการ

 

4.      การเลือกมาดูพร้อมคำนวณ

สมมติอยากรู้ว่าถ้าเพิ่มเงินเดือนพนักงานจะต้องจ่ายเงินมากขึ้นอีกเท่าไหร่ก็เอามาลองขึ้นดูก่อนได้

SELECT chaempName, position, salary*2

FROM CHABUCHABU_EMPLOYEE

5.      การเรียกดูพร้อมมีเงื่อนไข

SELECT chaempName, position, salary

FROM CHABUCHABU_EMPLOYEE

WHERE salary>20000

ใช้ AND, OR, NOT ได้

 

6.      การใช้ BETWEEN/ NOT BETWEEN

เป็นการค้นหาข้อมูลช่วงที่กำหนด

SELECT chaempName, position, salary

FROM CHABUCHABU_EMPLOYEE

WHERE salary BETWEEN 20000 AND 25000

 

7.      การใช้ IN/ NOT IN

เพื่อดูเงื่อนที่สมาชิกอยู่กลุ่มที่กำหนดหรือไม่ได้อยู่ในกลุ่มที่หนด

SELECT chaempName, position

FROM CHABUCHABU_EMPLOYEE

WHERE position NOT IN(‘พนักงาน’);

 

8.      การใช้ LIKE/ NOT LIKE

เอาไว้ค้นหาข้อมูลชนิดตัวอักษร ด้วยเครื่องหมาย %

SELECT chaempName

FROM CHABUCHABU_EMPLOYEE

            WHERE chaempName LIKE ‘%ต’ //ชื่อขึ้นต้นด้วยตอเต่า

%ตัวอักษร หมายถึงมีอักษรตัวนี้ขึ้นต้น

ตัวอักษร% หมายถึงมีอักษรตัวนี้ตามท้าย

 

9.      การใช้ NULL

เผื่อบางทีมีคนมาสมัครเป็นพนักงานแต่ยังไม่มีสาขาที่จะลง ก็เลยมี    NULL อยู่ในช่องสาขาพอเวลาที่จะหาว่ามีพนักงานคนไหนยังไม่มีสาขาอยู่ก็สามารถค้นหาได้ไม่ต้องมาเลื่อนๆดูพนักงานทุกคน

SELECT chaempName, branchID

FROM CHABUCHABU_EMPLOYEE

            WHERE branchID IS NULL

 

10.  การเรียกดูแบบเรียงข้อมูล

SELECT chaempName, salary

FROM CHABUCHABU_EMPLOYEE

ORDER BY salary DESC;

เรียงจากคนที่ได้เงินมากไปหาคนที่ได้เงินน้อย

 

11.  การใช้ ALL

ใช้สำหรับการค้นหาว่าทุกคนที่มีตรงเงื่อนไขมีใครบ้าง

SELECT chaempName, salary

FROM CHABUCHABU_EMPLOYEE

WHERE salary > ALL(SELECT salary

FROM CHABUCHABU_EMPLOYEE

WHERE branchID= ‘CB001’;)

ให้หาทุกคนที่เงินเดือนมากกว่าทุกคน ซึ่งต้องมีแค่คนเดียวเท่านั้นที่จะเงินเดือนมากกว่าทุกคน

 

12.  การใช้ SOME

คล้ายกับ ALL แต่ SOME ต้องการให้แสดงอย่างน้อย1

SELECT chaempName, salary

FROM CHABUCHABU_EMPLOYEE

WHERE salary > SOME(SELECT salary

FROM CHABUCHABU_EMPLOYEE

WHERE branchID= ‘CB001’;)

ให้หาบางคนที่เงินเดือนมากกว่าบางคนซึ่งก็ต้องมีหลายที่มีเงินเดือนมากกว่าบางคน เช่น ผู้จัดการเงินเดือนมากกว่าผู้ช่วย แต่ผู้ช่วยก็เงินเดือนมากกว่าพนักงานดังนั้นก็ต้องแสดงทั้ง ผู้จัดการและผู้ช่วย

 

13.  การใช้ JOIN

เป็นการรวม 2 ตารางเข้าด้วยกัน โดยจะทำการจับคู่แถวที่ตรงกันของตารางมาแสดง โดยใช้คำสั่ง INNER JOIN

 

SELECT ชื่อตาราง1.ชื่อattribute1, ชื่อตาราง1.ชื่อattribute2

FROM ชื่อตาราง1

INNER JOIN ชื่อตาราง2

ON ชื่อตาราง1.ชื่อ attribute1 = ชื่อตาราง2.ชื่อ attribute1 (ตรวจอันที่ตรงกัน)

ORDER BY เงื่อนไข

ตัวอย่างเช่น

person                                                                         order

perID

perName

 

orID

orderNumber

perID

1

James

 

1

5503657

2

2

John

 

2

9902346

1

3

Julia

 

3

2259643

1

 

 

 

4

2243166

3

 

มี 2 ตารางได้แก่ตารางชื่อคนและตารางการสั่งซื้อสินค้า ต้องการทราบว่าคนชื่อนี้สั่งสินค้ารหัสอะไร

SELECT person.perName //ในตาราง person เลือกช่อง perName

FROM person

INNER JOIN order

ON person.perID = order.perID // perIDในตาราง person ให้เป็นตัวเดียวกับ perID ใน order

ORDER BY person.perName

 

 

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

สวัสดีชาวโลก – -‘

ยินดีต้อนรับสู่เวิร์ดเพรส นี่เป็นเรื่องแรกของคุณ คุณสามารถแก้ไขหรือลบมันได้ แล้วเริ่มการสร้างบล็อกของคุณ ถ้ามีปัญหาเกี่ยวกับเวิร์ดเพรส คุณสามารถขอความช่วยเหลือได้ที่เว็บบอร์ดเวิร์ดเพรส หรือคู่มือเวิร์ดเพรส