บทที่ 11

การเชื่อมต่อฐานข้อมูล

(Connecting to Databases)


Part 3: การเชื่อมต่อฐานข้อมูลและจัดการกับฐานข้อมูล

 

หัวข้อ (Topic):

11.1   การสร้างฐานข้อมูลและกำหนดไดรเวอร์ (Setting Up Your Resources)

11.2   การเข้าถึงฐานข้อมูล (Connecting to Databases)

11.3   การจัดการฐานข้อมูล (Managing to Database)

11.4   คำสั่งเอสคิวแอล  (SQL Command)

 

วัตถุประสงค์การเรียนรู้ (Learning Objective):

1.   สามารถสร้างฐานข้อมูลและกำหนดไดรเวอร์เพื่อทำงานกับฐานข้อมูลได้

2.   สามารถเชื่อมต่อการทำงานกับฐานข้อมูลได้

3.   สามารถเขียนชุดคำสั่งในการจัดการกับฐานข้อมูลได้

4.  อธิบายรูปแบบการใช้งานคำสั่ง SQL ได้

 

                จากเนื้อหาในบทที่แล้ว  เราได้ทราบถึงการใช้งาน Swing Package ซึ่งบรรจุคลาสของ Component ต่าง ๆ ที่หลากหลาย ที่ใช้ในการสร้างการเชื่อมต่อการทำงานกับ User  แน่นอนว่าจุดประสงค์ของการทำงานกับโปรแกรมนั้นก็คือเรื่องของข้อมูล  หากเราทำการสร้างแบบฟอร์มสำหรับรับค่าข้อมูลจากจาก User  แล้วเก็บข้อมูลในตัวแปร ก็จะเป็นการเก็บข้อมูลเพียงชั่วขณะเท่านั้น  ดังนั้นหากเราต้องการจัดเก็บข้อมูลอย่างมั่นคงและถาวร  ก็ต้องมีการเก็บลงในฐานข้อมูล (Database)  ซึ่งในบทนี้ จะขอแนะนำให้ทราบถึงวิธีการใช้ NetBeans ทำงานร่วมกับฐานมูล

 

11.1   การสร้างฐานข้อมูลและกำหนดไดรเวอร์ (Setting Up Your Resources)

                                แน่นอนประเภทของฐานข้อมูลนั้นมีหลายประเภท แต่ฐานข้อมูลประเภทที่ได้รับความนิยมในปัจจุบันก็คือฐานข้อมูลเชิงสัมพันธ์ (Relational Database)  ฐานข้อมูลประเภทนี้ทำให้คุณสามารถะเชื่อมโยง (Link)  ข้อมูลแบบหลายต่อหลายได้ (Many-to-Many)  แต่นับจากปัจจุบันถึงอนาคตฐานข้อมูลประเภทนี้จะถูกแทนที่ด้วยฐานข้อมูลเชิงวัตถุ (Object Database)  ซึ่งเป็นฐานข้อมูลที่สามารถเก็บข้อมูลหลากประชนิด ทั้งข้อความ (Text)  ภาพ(Image)  เสียง (Voice)  และมัลติมิเดีย (Multimedia)  นอกจากนี้การทำงานกับฐานข้อมูล   คุณจำเป็นต้องเลือกโปรแกรมฐานข้อมูลและโปรแกรมจัดการฐานข้อมูล (DBMS: Database Management System) ที่มีความเหมาะสมกับกับระบบ อีกทั้งคำนึงถึงค่าใช้จ่าย (Cost) ในการลงทุนเลือกซื้อ Software เหล่านี้อีกด้วย  ว่าโปรแกรมฐานข้อมูลนั้น และสำหรับภาษา Java  จัดเป็นโปรแกรม DBMS  ที่ทำหน้าที่เป็นตัวกลางในการเชื่อมต่อกับฐานข้อมูล  ทำให้เราสามารปรับปรุง (Update) ฐานข้อมูลได้  และ  Java นั้นก็สามารถเชื่อมการทำงานกับฐานข้อมูลได้หลากหลายชนิด  อาทิเช่นฐานข้อมูล   Access, Oracle และ MySQL       เป็นต้น  และในที่นี้จะขอแนะนำวิธีการเชื่อม Java กับฐานข้อมูล  Accesss เนื่องจากเป็นฐานข้อมูลขนาดเล็ก  และคาดว่าเครื่องคอมพิวเตอร์ของท่านคงมีโปรแกรม MS-Access ติดตั้งพร้อมแล้ว   ไม่ต้องค้นหาโปรแกรมอื่นเพิ่มเติม คงทำให้สะดวกและง่ายในการทำงานมากยิ่งขึ้น

 

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

                                ให้เริ่มสร้างฐานข้อมูลใน Access ก่อนตามขั้นตอนดังต่อไปนี้

 

                การเข้าใช้งานโปแกรม MS-Access  และการสร้างฐานข้อมูล

                1. Start  >  All Programs   > Microsoft Access 

                2.  เลือก Blank Database ที่แถบด้านขวามือ  ดังรูป

 

ch11_01

 

                3. จะปรากฎ dialog box ของ “File new database”   >  ในช่อง  Save  in  ให้คุณเลือก Folder สำหรับเก็บข้อมูล   >  จากนั้นพิมพ์ชื่อของฐานข้อมูลลงในช่อง  File name   >  Click ปุ่ม Create   > จะปรากฏหน้าจอดังนี้

 

 

ch11_02

                เมื่อทำการสร้างฐานข้อมูลเป็นที่เรียบร้อยแล้ว บน Title Bar ของหน้าต่างจะปรากฏชื่อของ database  และการทำงานเริ่มแรกใน database นั้นคุณต้องเริ่มต้นจาการสร้างฐานข้อมูล (Table) ก่อนเป็นอันดับแรก  จากนั้นคุณสามารถสร้าง Queries , Forms, Reports, Pages, Macros  หรือ Modules ตัวใดตัวหนึ่งก่อนก็ได้โดยไม่จำเป็นต้องเรียงตามลำดับ

 

การสร้างตาราง (Table)

                ก่อนเริ่มสร้างตารางในการจัดเก็บข้อมูลมีความจำเป็นต้องออกแบบและกำหนดโครงสร้างของตาราง ซึ่งหลักการออกแบบ Table ภายใน database ต้องอาศัยการสร้างความสัมพันธ์ระหว่าง table  และต้องทำการจัดบรรทัดฐานของ database (Normalization) เพื่อขจัดความซ้ำซ้อนของข้อมูลตามหลักวิชา ฐานข้อมูล  ในที่นี้สมมติว่า เราจะสร้างฐานข้อมูลเพื่อเก็บบุคคล (Personal)  จะขอยกตัวอย่างข้อมูลจำนวนไม่มากเพื่อให้ง่ายต่อการเข้าใจ

-                   การกำหนดโครงสร้างของตาราง (Table Structure)

ทำการกำหนดโครงสร้างของตาราง  ดังนี้

ชื่อตาราง (Table)  :  personal

 

ลำดับ

(Number)

ชื่อ Field

(Field Name)

ชนิดข้อมูล

(Data Type)

ความกว้าง

(Field Size)

อธิบาย

(Description)

1

id

Text

4

รหัสพนักงาน

2

name

Text

25

ชื่อพนักงาน

3

last_name

Text

25

นามสกุล

ตารางที่ 11.

 

-                   เริ่มสร้างตาราง

1.             เลือกป้าย Table ในแถบด้านซ้าย  >  เลือก Create table in Design view  เพื่อกำหนดโครงสร้างตารางด้วยตัวคุณเอง

2.             ทำการกำหนด Field  ลงในตารางตามที่ได้ออกแบบไว้  ดังรูป

 

ch11_03

 

-                   การกำหนด Primary Key

เมื่อกำหนดโครงสร้างของตารางเสร็จเรียบร้อยแล้ว ก่อนที่จะออกจากหน้าต่างนี้

เพื่อเข้าสู่การป้อนข้อมูล  คุณจำเป็นต้องทำการกำหนดคีย์หลักของตาราง (Primary key)  ซึ่งโดยปกติแล้วเราจะนิยมกำหนดให้  1 Table ใช้ primary key 1 ตัวเท่านั้น แต่ก็ไม่จำเป็นเสมอไป สามารถมี primary key มากกว่า  1  ตัวได้ ขึ้นอยู่กับลักษณะข้อมูลในตาราง  โดยคุณสมบัติหลัก ๆ ของ Field ที่เราจะเลือกใช้เป็น primary key นั้น จะเป็น Field  ที่เก็บข้อมูลไม่ซ้ำกัน(unique)  โดยมากนิยมใช้ข้อมูลรหัส  เป็น primary key (ควรศึกษาเพิ่มในวิชาฐานข้อมล) และการกำหนด primary key มีขั้นตอนดังนี้

 

                                1. Click ขวาที่หัวแถวของ Field   “id”   >  เลือก Primary key  >  จะมีรูปกุญแจปรากฎขึ้น ให้ดูภาพตัวอย่างได้จากด้านบน 

 

-                   การป้อนข้อมูลในตาราง Data Sheet

สามารถป้อนข้อมูลในตารางได้ตามขั้นตอนต่อไปนี้

1.  Click  ปุ่ม Close             ที่มุมขวามือที่ปิดหน้าต่างของตาราง   >  จะปรากฏ

dialog ถามว่าคุณต้องการ Save ตารางหรือไม่  ให้ตอบ Yes  และระบุชื่อตารางที่ต้องการ Save 

 

ch11_04

ch11_06

3.             จากนั้นจะปรากฎชื่อตาราง “Personal” ที่หน้าต่างของ database  >  ให้

Double click ที่ชื่อตาราง “Personal”  เพื่อเปิดตารางขึ้นมาสำหรับป้อนข้อมูล

 

คุณสามารถสลับการทำงานไปมาระหว่างหน้าต่างป้อนข้อมูล (Data Sheet)  กับ

หน้าต่างโครงสร้างของตาราง (Table Structure)  ได้ โดยใช้ปุ่ม View ที่มุมบนซ้ายมือ  ดังรูป

ch11_05

ถ้าคุณอยู่ในหน้าต่างโครงสร้างของตาราง (Table Structure)  แล้วต้องการสลับไป

ยังหน้าต่าง Data Sheet ปุ่ม View จะเปลี่ยนสถานะจากรูปดินสอ เป็นรูป

 

 

-                   การแก้ไขโครงสร้างของตาราง

1.             เมื่ออยู่ในหน้าต่าง Database  >  Click ขวาที่ชื่อตาราง “Personal”  >  เลือก

Design View

 

 

กำหนดไดรเวอร์ (Driver)

                คุณสามารถเข้ากำหนด Driver  เพื่อทำงานร่วมกับฐานข้อมูล Access ได้ตามขั้นตอนดังต่อไปนี้

                1. Start > Control  Panel  > Administrative Tools  > Data Sources (ODBC)

                2.  เลือกป้าย System DSN  >  Add   > Microsoft Access Driver (*.mdb)     >  Finish

                3.  จะปรากฏหน้าจอ dialog  ให้กำหนดชื่อ Driver  >  พิมพ์ชื่อ Driver  ที่ต้องการลงในช่อง Data Source Name  ดังรูป (หมายเลข 2) ตั้งชื่อ  Driver  ชื่อ Testjava

 

ch11_07

 

                4. จากนั้น click ปุ่ม Select  เพื่อเข้าไปเลือกฐานข้อมูลที่ต้องการใช้  (ตามรูปหมายเลข 3)  >  ให้ค้นหาที่อยู่ของ Database  โดยทำงานตามขั้นตอนหมายเลข  4-7

                5.  จะกลับเข้าสู่หน้าจอ  ดังรูป  >  ให้ click ปุ่ม OK

ch11_08

                                6. จากนั้นจะกลับสู่การทำงานของป้าย System DSN  และปรากฎชื่อ Driver  “testjava”  ตามที่ได้กำหนดไว้  >   คุณสามารถ click ปุ่ม Configure  เพื่อย้อนกลับไปแก้ไข หรือเปลี่ยนแปลงรายการฐานข้อมูลที่เลือก

ch11_09

                                7.  เมื่อกำหนดข้อมูลเสร็จเรียบร้อย ต้องการจบการทำงานให้ click ปุ่ม  Apply  >  OK

 

 

 

 

 

11.2   การเข้าถึงฐานข้อมูล (Connecting to Databases)

เมื่อสร้าง Driver เสร็จเรียบร้อย คุณสามารถเข้าถึงฐานข้อมูลได้ โดยการสร้าง Form การเชื่อมต่อ  ดังตัวอย่าง

 

- การเชื่อมต่อฐานข้อมูลและตรวจสอบข้อผิดพลาด (Jfconnectdb.java)

Output:

 

ch11_10

Design:

 

ch11_11

 

Component

Properties

JButton1

เปลี่ยนข้อความบนปุ่ม (Edit Text) : show DB

JButton2

เปลี่ยนข้อความบนปุ่ม (Edit Text) : บันทึก

JTextField1

เปลี่ยนข้อความบนปุ่ม (Edit Text) :  ค่าว่าง

JTextField2

เปลี่ยนข้อความบนปุ่ม (Edit Text) :ค่าว่าง

JTextField3

เปลี่ยนข้อความบนปุ่ม (Edit Text) :ค่าว่าง

JLabel1

เปลี่ยนข้อความบนปุ่ม (Edit Text) :รหัส

JLabel2

เปลี่ยนข้อความบนปุ่ม (Edit Text) :ชื่อ

JLabel3

เปลี่ยนข้อความบนปุ่ม (Edit Text) :นามสกุล

JTextArea1

text:        Message

Frame

title :      Connect DB

                               

ตารางที่  11....  กำหนดคุณสมบัติของ Component ในหน้าจอ Form Design

 

Source Code:

 

package applicationann;

import java.sql.*;

 

 

public class JFconnectdb extends javax.swing.JFrame {

     Statement stmt1;

     Connection con;

    /** Creates new form JFconnectdb */

 

    public JFconnectdb() {

        initComponents();

    }

 

private void formWindowClosed(java.awt.event.WindowEvent evt) {                                  

 try{

            con.close();

    }catch(SQLException e){

           

        }

// TODO add your handling code here:

    }                                

 

    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  

try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      }catch(ClassNotFoundException ex){

            jTextArea1.setText(ex.getMessage());

   }

        try{         

             

           String url = "jdbc:odbc:testjava";        

               con = DriverManager.getConnection(url,"per_dep.mdb","");     

             stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                     ResultSet.CONCUR_READ_ONLY);

        }catch(SQLException e){

            jTextArea1.setText("ConnectionError : " + e.getMessage());

            //System.err.print(e.getMessage());

        }// TODO add your handling code here:

// TODO add your handling code here:

    }                                

 

    private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                     

        try{          

            stmt1.executeUpdate("update table1 set test2 = 'personal'");

        }catch(SQLException e){

            jTextArea2.setText("error on update : " + e.getMessage());

        }

    }                                    

 

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                     

        try{           

 

            String SQL = "select * from personal";

            ResultSet rs = stmt1.executeQuery(SQL);

           

            rs.first();

            jTextField1.setText(rs.getString("id"));           

            jTextField2.setText(rs.getString("name"));           

            jTextField3.setText(rs.getString("last_name"));

            jTextArea2.setText("execute SQL : " + rs.getString(1));  

            rs.close();

           

        }catch(SQLException e){

              jTextArea1.setText("execute SQL : " + e.getMessage());          

              System.err.print(e.getMessage());

        }// TODO add your handling code here:

    }    

 

11.3  การจัดการฐานข้อมูล (Managing to Database)

เมื่อเราสามารถเรียกข้อมูลจาก Database ออกมาแสดงได้แล้ว จากนี้เราสามารถเขียนปุ่มคำสั่งต่าง

  เพื่อจัดการกับข้อมูลภายในฐานข้อมูลได้

 

การสร้างปุ่มคำสั่งเพื่อจัดการกับฐานข้อมูล (JFdbManage.java)

Output:

 

ch11_12

 

 

Design:

 

ch11_13

 

กำหนด Properties ให้กับแต่ละ Component ดังนี้

Component

Properties

JButton1

เปลี่ยนข้อความบนปุ่ม (Edit Text) : l<

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdtop

JButton2

เปลี่ยนข้อความบนปุ่ม (Edit Text) : <

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdpre

JButton3

เปลี่ยนข้อความบนปุ่ม (Edit Text) : >

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdnext

JButton4

เปลี่ยนข้อความบนปุ่ม (Edit Text) : >l

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdlast

JButton5

เปลี่ยนข้อความบนปุ่ม (Edit Text) : Add

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdadd

JButton6

เปลี่ยนข้อความบนปุ่ม (Edit Text) : Save

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdsave

JButton7

เปลี่ยนข้อความบนปุ่ม (Edit Text) : Delete

เปลี่ยนชื่อเป็น(Change Variable Name) : cmddel

JButton8

เปลี่ยนข้อความบนปุ่ม (Edit Text) : Update

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdedit

JButton9

เปลี่ยนข้อความบนปุ่ม (Edit Text) : Find

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdfind

JButton10

เปลี่ยนข้อความบนปุ่ม (Edit Text) : Print

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdprint

JButton11

เปลี่ยนข้อความบนปุ่ม (Edit Text) : Close

เปลี่ยนชื่อเป็น(Change Variable Name) : cmdclose

JTextField1

เปลี่ยนข้อความบนปุ่ม (Edit Text) :  ค่าว่าง

JTextField2

เปลี่ยนข้อความบนปุ่ม (Edit Text) :ค่าว่าง

JTextField3

เปลี่ยนข้อความบนปุ่ม (Edit Text) :ค่าว่าง

JLabel1

เปลี่ยนข้อความบนปุ่ม (Edit Text) :รหัส

JLabel2

เปลี่ยนข้อความบนปุ่ม (Edit Text) :ชื่อ

JLabel3

เปลี่ยนข้อความบนปุ่ม (Edit Text) :นามสกุล

JFrame

title :      Manage DB

                               

ตารางที่  11....  กำหนดคุณสมบัติของ Component ในหน้าจอ Frame Design

 

 

Source Code:

 

package applicationann;

 

import java.sql.*;

import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.xml.transform.Result;

import javax.swing.JOptionPane;

 

public class JFdbManage extends javax.swing.JFrame {    

      Statement  stmt1,stmt;

      Connection con; 

      public int mem=0;

      /** Creates new form JFdb */

 

    public JFdbManage () {

        initComponents();       

    }

 

private void formWindowClosed(java.awt.event.WindowEvent evt) {                                 

   try{

            con.close();

        }catch(SQLException e){

           

        }

// TODO add your handling code here:

    }        

 

private void formWindowOpened(java.awt.event.WindowEvent evt) {                               

        try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        }catch(ClassNotFoundException ex){

        }

        try{    

                  String url = "jdbc:odbc:testjava";            

          con = DriverManager.getConnection(url,"per_dep.mdb","");     

          stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                           ResultSet.CONCUR_READ_ONLY);

         

       

                  

        }catch(SQLException e){

                     System.err.print(e.getMessage());

        }                    

         //--------------

         try{         

                  String SQL = "select * from personal order by id";

                  ResultSet rs = stmt1.executeQuery(SQL);                      

                   rs.first();   

          mem = rs.getRow();

         text1.setText(rs.getString("id"));

         text2.setText(rs.getString("name"));

         text3.setText(rs.getString("last_name"));

 

        }catch(SQLException e){

            System.err.print(e.getMessage()); 

        }

// TODO add your handling code here:

    }  

//**********************************************************************

private void cmdsaveMouseClicked(java.awt.event.MouseEvent evt) {                                     

        try{

            stmt = con.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

           

            String SQL = "select * from personal";

            

           

           

            ResultSet rs = stmt.executeQuery(SQL);

            rs.absolute(mem);

            rs.updateString("id",text1.getText());

            rs.updateString("name",text2.getText());

            rs.updateString("last_name",text3.getText());

            rs.insertRow();

            rs.refreshRow();   

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }       

// TODO add your handling code here:

    }     

 

private void cmdpreMouseClicked(java.awt.event.MouseEvent evt) {                                   

// TODO add your handling code here:

        try{           

            String SQL = "select * from personal";

            ResultSet rs = stmt1.executeQuery(SQL);

           

            mem--;

            rs.absolute(mem);

            mem = rs.getRow();

            System.out.println(mem);

           

           

           

            text1.setText(rs.getString("id"));           

            text2.setText(rs.getString("name"));           

            text3.setText(rs.getString("last_name"));           

           

        }catch(SQLException e){

               System.err.print(e.getMessage());

        }

       

        if (mem==0)

            {

            System.out.println("First record");

            cmdpre.setToolTipText("First Record");

            cmdpre.setEnabled(false);

            cmdtop.setEnabled(false);

            cmdnext.setEnabled(true);

            cmdlast.setEnabled(true);  }

else{

            cmdtop.setEnabled(false);

            cmdnext.setEnabled(true);

            cmdlast.setEnabled(true);

            cmdtop.setEnabled(true);

            }

    }   

 

private void cmdnextMouseClicked(java.awt.event.MouseEvent evt) {                                     

// TODO add your handling code here:

        try{           

            String SQL = "select * from personal";

            ResultSet rs = stmt1.executeQuery(SQL);

           

            mem++;

            rs.absolute(mem);

            mem = rs.getRow();

            System.out.println(mem);

            text1.setText(rs.getString("id"));

            text2.setText(rs.getString("name"));

            text3.setText(rs.getString("last_name"));

           

        }catch(SQLException e){

            System.err.print(e.getMessage());

        }

       

        if (mem==0)

         {

            System.out.println("Last record");

            cmdnext.setToolTipText("Last Record");

            cmdnext.setEnabled(false);

            cmdlast.setEnabled(false);

            cmdtop.setEnabled(true);

            cmdpre.setEnabled(true);   }

else {

            cmdtop.setEnabled(true);

            cmdpre.setEnabled(true);

            cmdlast.setEnabled(true); }

    } 

 

private void cmdlastMouseClicked(java.awt.event.MouseEvent evt) {                                    

// TODO add your handling code here:

        try{

            String SQL = "select * from personal";

            ResultSet rs = stmt1.executeQuery(SQL);

           

            rs.last();

            mem = rs.getRow();

            System.out.println(mem);

            text1.setText(rs.getString("id"));           

            text2.setText(rs.getString("name"));           

            text3.setText(rs.getString("last_name"));

           

        }catch(SQLException e){

            System.err.print(e.getMessage());

        }

        cmdlast.setToolTipText("Last Record");

        cmdlast.setEnabled(false);

        cmdnext.setEnabled(false);

        cmdtop.setEnabled(true);

        cmdpre.setEnabled(true);

    }       

 

private void cmdtopMouseClicked(java.awt.event.MouseEvent evt) {                                   

// TODO add your handling code here:

        try{

            String SQL = "select * from personal";

            ResultSet rs = stmt1.executeQuery(SQL);

           

            rs.first();

            mem = rs.getRow();

            System.out.println(mem);

            text1.setText(rs.getString("id"));           

            text2.setText(rs.getString("name"));           

            text3.setText(rs.getString("last_name"));

           

        }catch(SQLException e){

            System.err.print(e.getMessage());

        }

        if (mem==1) {

            cmdtop.setEnabled(false);

            cmdtop.setToolTipText("First Record");

            cmdpre.setEnabled(false);

            cmdnext.setEnabled(true);

            cmdlast.setEnabled(true);

        }

    }  

 

private void text2ActionPerformed(java.awt.event.ActionEvent evt) {                                     

// TODO add your handling code here:

        text3.requestFocus();

    }  

 

private void text1ActionPerformed(java.awt.event.ActionEvent evt) {                                     

// TODO add your handling code here:

        text2.requestFocus();

    }  

 

private void cmdcloseMouseClicked(java.awt.event.MouseEvent evt) {                                     

// TODO add your handling code here:

        try{

            con.close();

            dispose();

        }catch(SQLException e){

           

        }

    }       

 

private void cmdeditMouseClicked(java.awt.event.MouseEvent evt) {                                    

// TODO add your handling code here:

        try{

            stmt = con.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

           

            String SQL = "select * from personal";

            ResultSet rs = stmt.executeQuery(SQL);

 

            rs.absolute(mem);

            System.out.println(mem);

            rs.updateString("name",text2.getText());

            rs.updateString("last_name",text3.getText());           

            rs.updateRow();

           

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }

    }

 

private void cmddelMouseClicked(java.awt.event.MouseEvent evt) {                                   

        try{

            stmt = con.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

           

            String SQL = "select * from personal";           

            ResultSet rs = stmt.executeQuery(SQL);

           

            rs.absolute(mem);

            mem = rs.getRow();

            System.out.println("delete record : "+mem);

           

            if (JOptionPane.showConfirmDialog(null,"Delete sure?",

                    "Confirm",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){

                rs.deleteRow();

                rs.absolute(--mem);

                text1.setText(rs.getString("id"));

                text2.setText(rs.getString("name"));

                text3.setText(rs.getString("last_name")); }

           

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }

// TODO add your handling code here:

    }     

 

private void cmdaddMouseClicked(java.awt.event.MouseEvent evt) {                                   

        try{

            stmt = con.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

           

            String SQL = "select * from personal";       

            ResultSet rs = stmt.executeQuery(SQL);

            rs.last();

           

            mem = rs.getRow();

            mem++;           

            rs.absolute(mem);

            rs.moveToInsertRow();

            System.out.println(mem);

           

            text1.requestFocus();

            text1.setText("");

            text2.setText("");

            text3.setText("");          

           

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }

// TODO add your handling code here:

    }  

 

การนำข้อมูลจาก Database แสดงผลใน JList (JFdbList.java)

Output:

 

ch11_14

Design:

 

ch11_15

 

กำหนด Properties ให้กับแต่ละ Component ดังนี้

Component

Properties

Jlist1

เปลี่ยนชื่อเป็น(Change Variable Name) : JList3

JButton1

เปลี่ยนข้อความบนปุ่ม (Edit Text) : Pull data  in  JList3

เปลี่ยนชื่อเป็น(Change Variable Name) : JText3

JFrame1

title :      Using JListDB

                                ตารางที่  11....  กำหนดคุณสมบัติของ Component ในหน้าจอ Frame Design

 

 

Source Code:

 

package applicationann;

import java.sql.*;

import java.util.*;  //for Vector

 

public class JFdbList extends javax.swing.JFrame {  

    public int t;

    private Vector test,toy;      

      Statement  stmt1,stmt;

      Connection con;      

    /** Creates new form JFdb */

 

    public JFdbList() {

        test = new Vector();

        toy = new Vector();

        initComponents();       

    }

 

  private void JText3MouseClicked(java.awt.event.MouseEvent evt) {                                   

try{

            stmt = con.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

           

            String SQL = "select * from personal",temp;           

            ResultSet rs = stmt.executeQuery(SQL);          

            while (!rs.isAfterLast())

            {

                rs.next();               

            temp = rs.getString("name");

            test.addElement(temp);          

            JList3.setListData(test);      

            }        

        }catch (SQLException e) {

            System.err.print(e.getMessage());     

    } 

// TODO add your handling code here:

    }   

private void formWindowClosed(java.awt.event.WindowEvent evt) {                                 

   try{

            con.close();

        }catch(SQLException e){           

        }

// TODO add your handling code here:

    }   

 

  private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 

 

        try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        }catch(ClassNotFoundException ex){

     

        }

        try{               

           

          String url = "jdbc:odbc:testjava";             

             

          con = DriverManager.getConnection(url,"per_dep.mdb","");     

          stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                           ResultSet.CONCUR_READ_ONLY);                  

        }catch(SQLException e){

          

        }

        

         try{           

        

         String SQL = "select * from personal order by id";

      

             ResultSet rs = stmt1.executeQuery(SQL);          

            

            rs.first();      

        }catch(SQLException e){

         

        }     

// TODO add your handling code here:

    } 

 

 

การ Copy  File (.java)

ถ้าคุณจำเป็นต้องสร้างโปรแกรมลักษณะเดียวกัน  และใช้ Code ลักษณะเดียวกันภายในโปรแกรม คุณสามารคัดลอก (Copy) ไฟล์โปรแกม (.java) ได้เพื่อสะดวกในการออกแบบ Frame และง่ายต่อการเขียนโปรแกรม  ดังขั้นตอนต่อไปนี้

1. Click ขวาที่ชื่อ File ที่ต้องการ Copy    >   Copy

 

ch11_16

2.   จากนั้นเลือกตำแหน่งในการวาง File  ซึ่งจากภาพตัวอย่างจะเลือกที่ “applicationann”  >  Click ขวา   > paste    จะได้ชื่อใหม่ เช่น

 

ch11_17

 

การเปลี่ยนชื่อ File (.java)

                                หลังจากที่ทำงาน Copy file (.java) เป็นที่เรียบร้อยแล้ว คุณสามารถเปลี่ยนชื่อใหม่เป็นชื่อใหม่ได้ตามต้องการ ด้วยการ

1.             เลือกชื่อ File ที่อยู่ในหน้าต่าง  Project ด้านซ้าย  >  Click ซ้ำที่ชื่อ File อีก 1 ครั้ง  > จากนั้นให้พิมพ์ชื่อใหม่ตามต้องการ  แล้วกดปุ่ม Enter  >  จะปรากฏหน้าจอ

 

 

ch11_20

                 2.   click เลือก Option ของ Rename Without Refactorying  >  Next  

 

 

                                นอกจากการเปลี่ยนชื่อ File แล้ว คุณยังจำเป็นต้องเปลี่ยนชื่อ Class ภายในส่วนของ Source Code และเปลี่ยนชื่อของ Method Constructor ด้วย   ดังนี้

 

 

ch11_18

ch11_19

 

                                เปลี่ยนชื่อให้ตรงกับ  File (.java)

 

11.4   คำสั่งเอสคิวแอล  (SQL Command)

คำสั่ง SQL (Structured Query Language)  เป็นภาษามาตราฐานภาษาหนึ่ง ใช้ในโปรแกรม Oracle , FoxBASE, Forpro,Access,Sybase,Informix,DB2,SQL Server   และโปรแกรมฐานข้อมูลอื่น ๆ   เป็นภาษาที่มีรูปแบบคำสั่ง (Syntax)  เป็นประโยคภาษาอังกฤษ   ซึ่งทำให้ง่ายต่อการเข้าใจและง่ายต่อการเรียนรู้

 

ความสำคัญของ SQL

ปัจจุบันมีการพัฒนาซอฟต์แวร์ DBMS (Database management System)  ซึ่งหมายถึง

ซอฟต์แวร์ที่เป็นสื่อกลางในการเชื่อมต่อการทำงานระหว่างโปรแกรมฐานข้อมูลกับ User   ในปัจจุบันได้พัฒนา DBMS ขึ้นมาอย่างหลากหลาย   Visual Basic , ASP, PHP, DB2,Java  ซึ่งซอฟต์แวร์เหล่านี้เป็น DBMS ที่ใช้ภาษาการจัดการข้อมูลที่เรียกว่า SQL  และ QBE ใช้กับฐานข้อมูลเชิงสัมพันธ์  (Ralational Database) เป็นส่วนใหญ่  ซึ่งภาษา SQL  มีความสำคัญกับหลาย ๆ โปรแกรมที่ทำหน้าที่เป็น DBMS เนื่องจากการสอบถามหรือสืบค้นข้อมูลจากฐานข้อมูลนั้น ถือเป็นปัจจัยสำคัญกับการทำงานของระบบสารสนเทศ

 

ความสามารถของ SQL           

         ภาษา SQL ได้จำแนกกลุ่มคำสั่งสำหรับจัดการกับข้อมูล ออกเป็น 4 กลุ่มหลัก ดังนี้

1.กลุ่มคำสั่งในการ “ขอดูข้อมูล”  (select )

2. กลุ่มคำสั่งในการ “เพิ่มข้อมูล”  (insert)

3. กลุ่มคำสั่งในการ “แก้ไขข้อมูล” (update)

4. กลุ่มคำสั่งในการ “ลบข้อมูล”  (delete)

 

ชนิดข้อมูลใน SQL

                ชนิดข้อมูลของภาษา SQL ที่นำไปใช้กับซอฟต์แวร์ DBMS หรือใช้กับซอฟต์แวร์ฐานข้อมูลแต่ละตัวนั้นจะแตกต่างกันออกไป เช่น การใช้ SQL ร่วมกับฐานข้อมูล JDBC ใน Java  กับ SQL ร่วมกับ Oracle   จะทำให้ชนิดข้อมูลของทั้งสองนั้นมีความแตกต่างกัน ซึ่งขอยกตัวอย่างชนิดข้อมูลใน JDBC ของ Java ดังต่อไปนี้

ชนิดข้อมูล

ความหมาย

BIT

เก็บค่าตัวเลข (0/1)

TINYINT

ข้อมูลตัวเลข

SMALLINT

ข้อมูลตัวเลข  ขนาดเล็กกว่า INTEGER

INTEGER

ข้อมูลประเภทตัวเลข

REAL

ข้อมูลเลขจำนวนจริง

FLOAT

ข้อมูลเลขทศนิยม

DOUBLE

ข้อมูลเลขทศนิยม ความแม่นยำสูง

DECIMAL

ข้อมูลเลขทศนิยม

NUMERIC

ข้อมูลตัวเลข

CHAR

ข้อมูลที่เป็นอักขระ

VARCHAR

ข้อมูลตัวอักษร

BINARY

ข้อมูลค่าจริง/เท็จ (0/1)

DATE

ข้อมูลประเภทวันที่ เช่น MM-DD-YY

TIME

ข้อมูลเวลา

TIMESTAMP

ข้อมูลเวลา

ตารางที่ 11.

 

คำสั่งในการจัดการกับฐานข้อมูล (Database)

                ในภาษา  SQL สามารถใช้ชุดคำสั่งเพื่อจัดการกับข้อมูลได้ ดังต่อไปนี้

 

1.  การแสดงข้อมูลในตาราง

                - การแสดงข้อมูลภายใน 1 ตาราง

 

การเรียกดูข้อมูลทั้งหมดในตาราง

Syntax:

                SELECT    *       FROM   ระบุชื่อตาราง;     

 

ตัวอย่าง:

                SELECT    *       FROM   Personal;              

 

การเรียกดูข้อมูลบาง Field

Syntax:

                SELECT    ชื่อ Field1,ชื่อ Field2,…,ชื่อ Fieldn       FROM   ระบุชื่อตาราง;     

 

ตัวอย่าง:

                SELECT    Pid, Pname, Paddress                FROM   Personal;              

 

 

การเรียกดูข้อมูลแบบมีเงื่อนไข

Syntax:

                SELECT    ชื่อ Field1,ชื่อ Field2,…,ชื่อ Fieldn       FROM   ระบุชื่อตาราง;     

WHERE  ระบุเงื่อนไข ;

 

ตัวอย่าง:

                SELECT    Pid, Pname, Paddress                FROM   Personal;              

WHERE  P_age >= 25;

 

 

การกำหนดเงื่อนไขในส่วนของ WHERE

- ใช้เครื่องหมายในการเปรียบเทียบค่า (Comparison Operator)  ได้แก่

                                                >   >=    <   <=

                                                LIKE

                                                IN

 เช่น       WHERE  P_age >= 25;  หรือ

                WHERE  Pname  LIKE  ‘%นี%;    ß เปรียบเทียบบางส่วนของข้อความ    หรือ

                WHERE  P_age    IN  (25,30);   

 

-  การใช้ตัวเชื่อมเงื่อนไข  AND  และ OR   เช่น

                WHERE  P_age = 25  OR  P_age = 30;    หรือ

                WHERE  P_age = 25  AND  P_age = 30;   

 

การเรียกดูข้อมูลโดยใช้เงื่อนไขในการจัดเรียงข้อมูล (Sort)

Syntax:

                SELECT    *       FROM   ระบุชื่อตาราง       ORDER  BY   ระบุชื่อ Field;        

 

ตัวอย่าง:

                SELECT    *       FROM   Personal   ORDER  BY   Pid;       

 

Syntax:

                SELECT    ชื่อ Field1,ชื่อ Field2,…,ชื่อ Fieldn       FROM   ระบุชื่อตาราง;     

ORDER  BY   ระบุชื่อ Field;        

 

ตัวอย่าง:

                SELECT    Pid, Pname, Paddress                FROM   Personal   ORDER  BY     Pid;   หรือ

SELECT    Pid, Pname, Paddress                FROM   Personal   ORDER  BY     Pid  DESC;  

                SELECT    Pid, Pname, Paddress                FROM   Personal   ORDER  BY     Pid  ASC;  

เมื่อ         DESC    ใช้เมื่อต้องการเรียงข้อมูลจากมากไปหาน้อย (Descending)

                ASC       ใช้เมื่อต้องการเรียงข้อมูลจากน้อยไปหามาก (Ascending)

 

                - การแสดงข้อมูลจากหลายตาราง

Syntax:

                SELECT  ชื่อ Field1,ชื่อ Field2,…,ชื่อ Fieldn    FROM    ชื่อตารางที่1,ชื่อตารางที่2    WHERE  ระบุเงื่อนไขของทั้ง 2 ตาราง                ORDER BY   ระบุ Field และรูปแบบการจัดเรียง; 

 

ตัวอย่าง:

SELECT  Personal.Pid,Personal.Pname,Training.Tcourse   FROM    Personal,Training

                WHERE  Personal.Pid  =  Training.Pid     ORDER BY   Personal.Pid  DESC; 

 

2.  การเพิ่มข้อมูล

                - การเพิ่มข้อมูลภายใน 1 ตาราง

Syntax :

                INSERT  INTO    ชื่อตาราง (ชื่อ field ที่1 , ชื่อ field ที่ชื่อ field ที่n)  VALUES  ข้อมูลข้อความ’, ข้อมูลตัวเลข);

 

ตัวอย่าง:

INSERT  INTO    Sale (sid_produc , sunit)  VALUES  (‘001’, 1500);

 

                - การเพิ่มข้อมูลลงในหลายตาราง

 

3. การแก้ไขหรือ update ข้อมูล

                - การ update ข้อมูลภายในหนึ่งตาราง

Syntax:

                UPDATE  ชื่อตาราง   SET    ชื่อ Field  =  ค่าของข้อมูล  WHERE   ระบุเงื่อนไขของ record ทีต้องการ update;

 

 

ตัวอย่าง:

UPDATE  Personal   SET    paddress  =  ‘บางเขน’  WHERE   pname = ‘สุนีย์’;

 

                - การ update ข้อมูลหลายตาราง

 

4. การลบข้อมูล

                - การลบตาราง

Syntax

                DELETE TABLE     ชื่อตาราง;

 

ตัวอย่าง :

                DELETE  TABLE     Personal;

 

                -  การลบข้อมูลเฉพาะ Record

Syntax :

                DELETE FROM    ชื่อตาราง         WHERE   ระบุเงื่อนไขในการลบ;

 

ตัวอย่าง :

                DELETE  FROM    Personal         WHERE   pname = ‘สุนีย์’;

 

5.  คำสั่งสร้างฐานข้อมูล

Syntax :
               CREATE    DATABASE    ชื่อฐานข้อมูล;

ตัวอย่าง :

CREATE   DATABASE   MyDB;

6.  การลบฐานมูล
Syntax
:
               DROP   DATABASE   ชื่อฐานข้อมูล;

ตัวอย่าง :

DROP   DATABASE  MyDB;

 

7.  การสร้างตาราง
Syntax
:
               CREATE   TABLE  
ระบุชื่อตาราง(ชื่อ Field    ชนิดข้อมูล   ประเภทของ Key ,…);

ตัวอย่าง :

CREATE    TABLE   Personal(Pid  CHAR(4)  PRIMARY KEY,
                                                          Pname  VARCHAR(25) );

การกำหนดข้อบังคับ (Constraint)
                ข้อบังคับ  (Constraint)  มีไว้เพื่อป้องกันไม่ให้คีย์ข้อมูลที่ไม่ถูกต้องลงในฐานข้อมูล  สามารถกำหนดข้อบังคับได้ในขณะกำหนดโครงสร้างของตาราง   หรือในขณะที่มีการสั่งคำสั่งเปลี่ยนแปลงโครงสร้างของตาราง ซึ่งมีกฎเกณฑ์ดังต่อไปนี้

1.  Field ใดที่มีชนิดข้อมูล (Data type)  เป็น Numeric จะไม่สามารถป้อนข้อมูลที่เป็น  String,Date,Boolean  ได้
                2. Field
ใดระบุคำว่า  Not Null   หมายความว่า Field นั้นจะมีค่าว่างไม่ได้  ต้องมีการใส่ค่าทุกครั้ง

3. Field ใดระบุคำว่า  Unique   หมายความว่า  ห้ามมีค่าว่างและค่าที่ป้อนนั้นห้ามซ้ำกันกับ Field อื่น

4. Field ใดระบุคำว่า  Check  หมายความว่า    ให้ Field นั้นมีค่าเฉพาะตามที่กำหนดไว้

5. Field ใดระบุคำว่า  Primary Key  หมายความว่า    ให้เป็น Field หลักของตาราง ห้ามมีค่าว่าง และค่าต้องไม่ซ้ำกัน

 

ตัวอย่าง :

CREATE   TABLE   Personal (Pid    CHAR(13)    PRIMARY KEY,
                                                               Pname  VARCHAR(25),
                                                               Ptitle     CHAR(1) CHECK(Ptitle  IN(‘1’,’2’,’3’)),
                                                                Phn        CHAR(9)  UNIQUE,
                                                               Pin_date    DATE      NOT  NULL,
                                                                Pbirthday    DATE );

ตัวอย่าง :  การกำหนดข้อบังคับภายในโครงสร้างตาราง (Table Constraint)
               CREATE   TABLE   State(sid  CHAR(8),
                                                                    svno CHAR (9),
                                                                    sdate  DATE,
                                                                    sdiag CHAR (5),
                                                                    PRIMARY   KEY(sid,svno,sdate,sdiag) );

 

8.  การสร้างตารางสมมติ

Syntax :                 

CREATE VIEW     ชื่อของวิว   AS    ประโยคคำสั่ง SELECT;

 

 

แบบฝึกหัดท้ายบท

1.             จงฐานข้อมูลชื่อ “Market”  และสร้าง Table ชื่อ  “Sale” และให้ออกแบบโครงสร้างตารางตามความเหมาะสม จากนั้นป้อนข้อมูลในตารางทั้งหมด 5 Record

2.             สร้าง Driver ชื่อ “ConNectMarket”  เพื่อใช้เชื่อมกับฐานข้อมูล

3.             ใน NetBeans  จงสร้าง Frame เพื่อเรียกข้อมูลจากฐานข้อม“Market” ออกมากแสดง

 

*****************************************เพิ่มเติาม********************************

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

การทำงานกับ Database

ข้อมูลอยู่ที่ Drive G: Netbeans  , Frame ชื่อ JFdb2Table.java

 

J การดึงข้อมูล 2 Table

1.               สร้าง Driver เพื่อ connect  database  โดยเข้าไปสร้างที่ control Panal àData source (ODBC)  สร้าง Driver ชื่อ “testjava”  และเลือกฐานข้อมูลชื่อ “per_dep.mdb”

2.               เขียน code ใน netbeans ดังนี้  (code นี้จะดึงข้อมูลออกมาเพียงแค่ 2 field เท่านั้น)

private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 

 try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        }catch(ClassNotFoundException ex){

        }

        try{         

          String url = "jdbc:odbc:testjava";                        

          con = DriverManager.getConnection(url,"per_dep.mdb","");     

          stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                           ResultSet.CONCUR_READ_ONLY);    

        }catch(SQLException e){

        }

         try{         

             String SQL = "select * from  personal,salary";            

             ResultSet rs = stmt1.executeQuery(SQL);                   

           rs.first();             

          mem = rs.getRow();

         text1.setText(rs.getString("id"));            ßแสดงข้อมูลของตารางที่ 1

          T6.setText(rs.getString("salary_id"));  ßแสดงข้อมูลของตารางที่ 2

         

        }catch(SQLException e){

        }

// TODO add your handling code here:

    }

หมายเหตุ :   การนำข้อมูลชนิดตัวเลขออกมาแสดงผลนั้น สามารถใช้ getString ได้  แต่เมื่อคุณต้องการ Update ข้อมูลชนิดตัวเลข คุณต้องเปลี่ยน String นั้นให้เป็น  Int เสียก่อน มิเช่นนั้น Type ของข้อมูลจะ Miss match

 

J การนำข้อมูลตัวเลข ไปแสดงผลใน JTextField (แต่จะมีปัญหาในเรื่องการคำนวณ ต้องแปลงข้อมูลไปและกลับ)

       int mm= rs.getInt("salary");

         String nn= " ";

         nn+=mm;

         T1.setText(nn);

 

J การสั่งให้ไปยังบรรทัดถัดไป

Ctrl+G

 

J การ   Update ข้อมูลชนิดตัวเลข

try{

            stmt = con.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

           

                   String SQL = "select * from salary";

                   ResultSet rs = stmt.executeQuery(SQL);

            rs.absolute(mem);

            System.out.println(mem);

          rs.updateInt("salary",Integer.parseInt(T1.getText()));  ß ต้องแปลงข้อมูลให้เป็นชนิดตัวเลข

         rs.updateRow();    

           

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }

 

J การจัด Format ตัวเลขทางการเงิน

import java.text.NumberFormat;

import java.util.Locale;

     int amount = 20;

        String output = "";    

          NumberFormat moneyFormat =  NumberFormat.getCurrencyInstance( Locale.US);

        output += moneyFormat.format( amount );

        test.setText(output);

กรณีจัด format ข้อมูลจาก Field ของตาราง

String output1="";    

NumberFormat moneyFormat =  NumberFormat.getCurrencyInstance( Locale.US);

output1+=moneyFormat.format(rs.getInt("salary"));

        T1.setText(output1);

 

J การเชื่อมข้อมูล 2 Table

1.               สร้างตาราง 2 ตารางใน Access

2.               สร้าง Relation ตามขั้นตอนดังนี้

-                    เลือกป้าย Table ในหน้าต่างของ Database  à Click ขวา à Relation

3.               กำหนดเงื่อนไขใน Netbeans

 

public class JFdb2Table extends javax.swing.JFrame {

SQL = "select * from  personal,salary_update  where personal.id = salary_update.personal_id order by personal.id";

                                }

                     4.  เขียนโปรแกรมเพื่อนเลื่อน Record และทำงานกับ Field ในตารางตามปกติ

 

J การ  Update ข้อมูล 2 Table  (กรณี link กันแบบ 1-to-1)   ถ้า One –to- many วิธีนี้จะมีปัยหา

(ต้อง  update ทั้ง 2 ตาราง ถ้า up เพียงแค่ 1 ตารางก็สามารถทำได้ แค่จะมี msg  errer อยู่ด้านล่าง)

public JFdb2Table() {  ß Method Contructor

        initComponents(); 

    try{

          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

   }catch(ClassNotFoundException ex){           

   }

      try{             

         String url = "jdbc:odbc:testjava";       

    con = DriverManager.getConnection(url,"per_dep.mdb","");     

    con1 = DriverManager.getConnection(url,"per_dep.mdb","");     

      stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                        ResultSet.CONCUR_READ_ONLY);            

   }catch(SQLException e){              

        }         

    }

 

private void cmdeditMouseClicked(java.awt.event.MouseEvent evt) {      ß ใช้ Update ข้อมูล                              

updatetable();  // line 759

updatetable2(); //line 760

// TODO add your handling code here: 

    }   

 

public  void updatetable()    {

        try{

            stmt = con.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

            String SQL4 = "select * from personal order by personal.id";

    //    String SQL = "select * from personal,salary_update where  persoanl.id = salary_update.personal_id";

                     ResultSet rs = stmt.executeQuery(SQL4);

            rs.absolute(mem);

            System.out.println(mem);

         //    rs.moveToCurrentRow();

             rs.updateString("name",text2.getText());

            rs.updateString("last_name",text3.getText());

            rs.updateString("position",text4.getText());

            rs.updateString("department",text5.getText());

           // rs1.updateInt("salary",Integer.parseInt(T1.getText()));         

       //     rs.moveToCurrentRow();

            rs.updateRow();

         //  rs1.updateRow(); 

           

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }    

       

    }  

    public void updatetable2(){

            try{

            stmt2 = con1.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

                String SQL = "select * from salary_update order by salary_update.personal_id";

            // String SQL1 = "select * from personal,salary_update where  persoanl.id = salary_update.personal_id";

                     ResultSet rs1 = stmt.executeQuery(SQL);

          rs1.absolute(mem);

            System.out.println(mem);

  //          rs1.moveToCurrentRow();

            rs1.updateInt("salary",Integer.parseInt(T1.getText()));

        //    rs1.moveToCurrentRow();

           rs1.updateRow();

           

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }      

    }

 

J การ  Update ข้อมูล 2 Table  (กรณี link กันแบบ 1-to-M)  แต่จะใช้ได้เฉพาะในกรณีที่จำนวน Row เท่ากัน  ไม่เช่นนั้นเกิดปัญหาได้ ดังนั้นการ Link ข้อมูลแบบ 1 to M จะต้อง Update ข้อมูลทีละตาราง จะ update พร้อมกันไม่ได้ มันจะนำ Record ของตารางแรกไปเขียนทับกันได้

 

public class JFdb2Table extends javax.swing.JFrame {

Statement stmt1,stmt,stmt2;

Connection con,con1; 

public int mem=0;    

public    String SQL = "select * from  personal,salary_update  where personal.id = salary_update.personal_id order by personal.id,"+

   "salary_update.personal_id,salary_update.salary";  ßต้องเขียน code ที่ window_open เพื่อให้แสดงผลข้อมูลด้วย

   

    /** Creates new form JFdb */

private void cmdeditMouseClicked(java.awt.event.MouseEvent evt) {                                    

updatetable();  // line 759

updatetable2(); //line 760

// TODO add your handling code here: 

    }                                   

public  void updatetable()    {

        try{

            stmt = con.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                   ResultSet.CONCUR_UPDATABLE);               

           String SQL4 = "select * from personal order by personal.id";

// String SQL = "select * from  personal,salary_update  where personal.id = salary_update.personal_id order by personal.id";

                     ResultSet rs = stmt.executeQuery(SQL4);

            rs.absolute(mem);

            System.out.println(mem);

         //    rs.moveToCurrentRow();

             rs.updateString("name",text2.getText());

            rs.updateString("last_name",text3.getText());

            rs.updateString("position",text4.getText());

            rs.updateString("department",text5.getText());

           // rs1.updateInt("salary",Integer.parseInt(T1.getText()));         

       //     rs.moveToCurrentRow();

            rs.updateRow();

         //  rs1.updateRow(); 

           

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }    

       

    }  

    public void updatetable2(){

            try{

            stmt2 = con1.createStatement(

                    ResultSet.TYPE_SCROLL_SENSITIVE,

                    ResultSet.CONCUR_UPDATABLE);

                    String SQL = "select * from salary_update";

                     ResultSet rs1 = stmt2.executeQuery(SQL);

          rs1.absolute(mem);

            System.out.println(mem);

  //          rs1.moveToCurrentRow();

            rs1.updateInt("salary",Integer.parseInt(T1.getText()));

        //    rs1.moveToCurrentRow();

           rs1.updateRow();

           

        }catch (SQLException e) {

            System.err.print(e.getMessage());

        }      

    }

 

 

 

J การ  Update ข้อมูล 2 Table  (กรณี link กันแบบ 1-to-M)  แต่แยก update ทีละตาราง

ปุ่ม  Update Main Table

    private void cmdedit1MouseEntered(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

    }

 

ปุ่ม  Update Child Table

    private void cmdedit1MouseClicked(java.awt.event.MouseEvent evt) {

updatetable();  // line 759 update main table

// TODO add your handling code here:

    }

 

J ลดความฟุ่มเฟือยของ Code ด้วยการสร้าง Method

สามารถสร้าง method ชื่อ displaydata() สำหรับใช้แสดงผลข้อมูลในตาราง และนำไปเรียกใช้กับปุ่มคำสั่งต่าง ๆ ได้

 private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 

    displaydata();     

    // TODO add your handling code here:

    }

private void cmdtopMouseClicked(java.awt.event.MouseEvent evt) {                                   

// TODO add your handling code here:

        displaydata();

        if (mem==1) {

            cmdtop.setEnabled(false);

            cmdtop.setToolTipText("First Record");

            cmdpre.setEnabled(false);

            cmdnext.setEnabled(true);

            cmdlast.setEnabled(true);

        }

    }   

 

public void displaydata(){

              try{

         ResultSet rs = stmt1.executeQuery(SQL);        

           rs.first();   

          mem = rs.getRow(); 

           System.out.println(mem);

        //------------------ display data of first table

         text1.setText(rs.getString("id"));          

         text2.setText(rs.getString("name"));        

         text3.setText(rs.getString("last_name"));

         text4.setText(rs.getString("position"));        

         text5.setText(rs.getString("department"));

        //------------------ End displaying    

        String output1="";    

          NumberFormat moneyFormat =  NumberFormat.getCurrencyInstance( Locale.US);

          testid.setText(rs.getString("personal_id"));

         output1+=moneyFormat.format(rs.getInt("salary"));    

        T1.setText(output1);      

         T2.setText(rs.getString("OT"));

         T3.setText(rs.getString("sum_receive"));

         T4.setText(rs.getString("kongtun")); 

         T5.setText(rs.getString("pokosokorm"));

         T6.setText(rs.getString("tax"));

         T7.setText(rs.getString("youdhug"));

         T8.setText(rs.getString("net_for_receive")); 

      

         T9.setText(rs.getString("total_salary"));

         T10.setText(rs.getString("total_kongtun"));

         T11.setText(rs.getString("total_pokosokorm"));

         T12.setText(rs.getString("total_tax"));

         //------------------ End displaying   

              }catch (SQLException e) {

            System.err.print(e.getMessage());

        }

    }

 

J การค้นหาข้อมูล

การค้นหาโดยระบุ รหัสที่ต้องการ  ใช้ JTextField ในการรับค่า และใช้ปุ่ม Find ในการค้นหา

private void cmdfindMouseClicked(java.awt.event.MouseEvent evt) {

    try{

        ResultSet rs = stmt1.executeQuery("SELECT * FROM personal WHERE id = '" +

                        FindText.getText()+"'");

                rs.first();

    if(rs.getRow() == 0){

                    JOptionPane.showMessageDialog(null,"Find not Found  : Record "+FindText.getText(),

                            "SQL Error",JOptionPane.ERROR_MESSAGE);

                }else{

                      text1.setText(rs.getString("id"));       

text2.setText(rs.getString("name"));        

                        text3.setText(rs.getString("last_name"));

                      text4.setText(rs.getString("position"));        

                       text5.setText(rs.getString("department"));

                      rs.refreshRow();

                }

              

           }catch (SQLException e) {

            System.err.print(e.getMessage());

               

        }

// TODO add your handling code here:

    }

 

***************************************************************

งานอยู่ที่ Thumb Drive  folder : JavaApplication

ConnectBase.java   <--  การเขียนคลาสในการเชื่อม base

package javaapplication;

import java.sql.*;

public class ConnectBase {

    private String dbdriver,dbname,user,password;  //ÊÒÁÒöãªéâ»Ãá¡ÃÁ Generate ä´é

    private Connection con;

    private Statement stm;

    public ResultSet rs;

    private String sql;

public void openConnection(String d,String n,String u,String p)throws Exception{

      dbdriver =d;

      dbname = n;

      user = u;

      password = p;

      Class.forName(dbdriver);        

      con = DriverManager.getConnection(dbname,user,password); 

      stm = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

    }   

    public void closeConnec()throws Exception{

    stm.close();

    con.close();

    }

    public void openResultSet(String s)throws Exception{

      sql = s;

      reQuery();

    }

    public void closeResultSet()throws Exception{

        rs.close();

    }

    public int actionQuery(String s)throws Exception{

        Statement stm = con.createStatement();

        int rc = stm.executeUpdate(s);

        stm.close();

        return rc;  // ¨Ð return ¡è͹ close äÁèä´é

    }

    public void reQuery()throws Exception{

       rs = stm.executeQuery(sql);

    }   

    //constructor

        /** Creates a new instance of ConnectBase */

    public ConnectBase() {

    }   

}//end class

 

EX204.java   <--  การอ่านข้อมูลจาก Text file (Notepad)

 

 

 

 

 

package javaapplication;

import java.io.*;

import javax.swing.table.DefaultTableModel;

public class EX204 extends javax.swing.JFrame {

    public EX204() {

        initComponents();

    }

private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 

     //´Ö§¢éÍÁÙŨҡ file ÁÒãÊè·ÕèµÒÃÒ§

        //µéͧ¡Òà 3 Column

        Object[] obj = {"A","B","C"};

        DefaultTableModel tm =  new DefaultTableModel(obj,1);

        this.table1.setModel(tm);

  

        //µéͧ¡Òà 4 Row

  for (int i = 0;i<3;i++)

    {

        //  DefaultTableModel tm =  (DefaultTableModel)table1.getModel();

         Object[]  rs = {"",""};

          tm.addRow(rs);

    }

//----------------------------------------------

try{   

      //  Object[]

        FileReader fl = new FileReader("d:/AnnApp/Text.txt");

        BufferedReader bin = new BufferedReader(fl);

        String s ="";

        int r = 0;

       

        while ((s = bin.readLine())!=null)

        {

            String[]  cols  = s.split(",");

            table1.setValueAt(s,r++,0);          //  table1.setValueAt(cols[0],r++,0); 

           

// System.out.println(s);

        } // ¢éÍÁÙÅ á¶Ç¡Ñº Column ÍÒ¨äÁèµÃ§¡Ñ¹ä´é

        bin.close();

        fl.close();

}catch(FileNotFoundException ex){

    ex.printStackTrace();   

}catch(IOException ex){

    ex.printStackTrace(); 

}        

       

       

//---------------------------------------------       

       

       

// TODO add your handling code here:

    }                                

 

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

    //Read Text file

try{    

        FileReader fl = new FileReader("d:/AnnApp/Text.txt");

        BufferedReader bin = new BufferedReader(fl);

        String s ="";

        while ((s = bin.readLine())!=null)

        {

                System.out.println(s);

        }

        bin.close();

        fl.close();

}catch(FileNotFoundException ex){

    ex.printStackTrace();   

}catch(IOException ex){

    ex.printStackTrace(); 

}  

       

// TODO add your handling code here:

    }  

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new EX204().setVisible(true);

            }

        });

    }

 

EX207.java

 

 

 

 

 

 

 

package javaapplication;

import java.sql.*;

import javax.swing.table.DefaultTableModel;

public class EX207 extends javax.swing.JFrame {

     Statement stmt1,stmt2;

     Connection con,con2;

    /** Creates new form EX207 */

    public EX207() {

        initComponents();

    }

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        

try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      }catch(ClassNotFoundException ex){      

   }

        try{         

             

           String url = "jdbc:odbc:mydb";        

               con = DriverManager.getConnection(url,"country.mdb","");     

               stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                     ResultSet.CONCUR_READ_ONLY);

        }catch(SQLException e){   

            //System.err.print(e.getMessage());

        }

  //àª×èÍÁ Table

            try{           

            String SQL = "select * from country";

            ResultSet rs = stmt1.executeQuery(SQL);           

            rs.first();

           //´Ö§¢éÍÁÙŨҡµÒÃÒ§

            String[] co ={"country"};

            DefaultTableModel tm = new  DefaultTableModel(co,0);

            table1.setModel(tm);

            Object[] r = new Object[1];

           

            while(rs.next()){

                tm.addRow(r);

                tm.setValueAt(rs.getString(1),tm.getRowCount()-1,0);

             /*   tm.setValueAt(rs.getString(2),tm.getRowCount()-1,1);

                tm.setValueAt(rs.getString(3),tm.getRowCount()-1,2);

                tm.setValueAt(rs.getString(4),tm.getRowCount()-1,3);

                tm.setValueAt(rs.getString(5),tm.getRowCount()-1,4);

                tm.setValueAt(rs.getString(6),tm.getRowCount()-1,5);*/

            }           

            rs.close();

           

        }catch(SQLException e){         

            System.err.print(e.getMessage());

        }// TODO add your handling code here:

// TODO add your handling code here:

    }                                        

 

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

 try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      }catch(ClassNotFoundException ex){      

   }

        try{         

             

           String url = "jdbc:odbc:mydb";        

               con = DriverManager.getConnection(url,"book.mdb","");     

               stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                     ResultSet.CONCUR_READ_ONLY);

        }catch(SQLException e){   

            //System.err.print(e.getMessage());

        }

  //àª×èÍÁ Table

            try{           

            String SQL = "select * from book order by BARCODE ";

            ResultSet rs = stmt1.executeQuery(SQL);           

            rs.first();

           //´Ö§¢éÍÁÙŨҡµÒÃÒ§

            String[] co ={"Barcode","Title","Author","Price","Type","Year"};

            DefaultTableModel tm = new  DefaultTableModel(co,0);

            table1.setModel(tm);

            Object[] r = new Object[6];

           

            while(rs.next()){

                tm.addRow(r);

                tm.setValueAt(rs.getString(1),tm.getRowCount()-1,0);

                tm.setValueAt(rs.getString(2),tm.getRowCount()-1,1);

                tm.setValueAt(rs.getString(3),tm.getRowCount()-1,2);

                tm.setValueAt(rs.getString(4),tm.getRowCount()-1,3);

                tm.setValueAt(rs.getString(5),tm.getRowCount()-1,4);

                tm.setValueAt(rs.getString(6),tm.getRowCount()-1,5);

            }           

            rs.close();

           

        }catch(SQLException e){         

            System.err.print(e.getMessage());

        }// TODO add your handling code here:

// TODO add your handling code here:

    }  

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new EX207().setVisible(true);

            }

        });

    }

EX402.java

 

 

package javaapplication;

public class EX402 extends javax.swing.JFrame {

   private ConnectBase db = new ConnectBase();  //¶éÒÁÕ Throw error ÍÍ¡ÁÒ¨Ðà¢Õ¹µÃ§¹ÕéäÁèä´é 

   private String em ="",un="";

    /** Creates new form EX402 */

    public EX402() {         

        initComponents();

    }

private void cmdCancelActionPerformed(java.awt.event.ActionEvent evt) {                                         

  

       try{

      this.text1.setText(em);

       this.text2.setText(un);

        //setCom();     

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }

// TODO add your handling code here:

    }                                        

 

    private void cmdExitActionPerformed(java.awt.event.ActionEvent evt) {                                       

      

        System.exit(0);

// TODO add your handling code here:

    }   

  private void cmdDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                         

try{

       int pos = db.rs.getRow();

       String sql = "delete from member where email='"+text1.getText()+"';";       

       int rc =  db.actionQuery(sql);

       this.lb3.setText("Delete Process:"+rc+"record[OK]");

       db.reQuery();  

       db.rs.last();

       if(pos>db.rs.getRow()){

           pos= db.rs.getRow();}

       db.rs.absolute(pos);

       setCom();

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }

// TODO add your handling code here:

    }                                        

 

    private void cmdUpdateActionPerformed(java.awt.event.ActionEvent evt) {                                         

//fslfslfl

if(text1.getText().trim().length()==0){

      lb3.setText("Email Error");

  }

  if(text2.getText().trim().length()==0){

      lb3.setText("User Name Error");

      return;

  }

       try{ 

           int pos = db.rs.getRow();

    //    String sql = "update member set email ='"+text1.getText()+"',user ='"+

     //                 text2.getText()+"'where email ='"+db.rs.getString(1)+"';"; µéͧ double click ¨Ö§·Ó§Ò¹ à¾ÃÒÐÁѹ get ¤èÒËÅÒ¤ÃÑé§

     //      á¡éä¢â´Â ÊÃéÒ§µÑÇá»Ã¢Öé¹ÁÒ

          

           String sql = "update member set email ='"+text1.getText()+"',user ='"+

                         text2.getText()+"'where email ='"+em+"';";

          

       int rc =  db.actionQuery(sql);

       this.lb3.setText("Update Process:"+rc+"record[OK]");

       db.reQuery();       

       db.rs.absolute(pos);

       setCom();

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }       

 

// TODO add your handling code here:

    } 

private void cmdSaveActionPerformed(java.awt.event.ActionEvent evt) {                                        

  if(text1.getText().trim().length()==0){

      lb3.setText("Email Error");

  }

  if(text2.getText().trim().length()==0){

      lb3.setText("User Name Error");

      return;

  }

        try{

        //String sql = "insert into member values(' "+a+" ',' " +b+ " ')   ";       

        String sql = "insert into member values('"+text1.getText()+"','"+text2.getText()+"')";       

       int rc =  db.actionQuery(sql);

       this.lb3.setText("Add Process:"+rc+"record[OK]");

       db.reQuery();        

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }

// TODO add your handling code here:

    }                                      

 

    private void cmdAddActionPerformed(java.awt.event.ActionEvent evt) {                                      

    this.text1.setText("");

    this.text2.setText("");

    this.text1.requestFocus();

   

// TODO add your handling code here:

    }                                     

 

    private void combo1ItemStateChanged(java.awt.event.ItemEvent evt) {                                       

   try{

      db.rs.absolute(this.combo1.getSelectedIndex()+1);

      this.setCom();

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }

// TODO add your handling code here:

    }   

private void cmd3ActionPerformed(java.awt.event.ActionEvent evt) {                                    

try{

        if(!db.rs.next()) db.rs.last();

        this.setCom();        

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }

// TODO add your handling code here:

    }                                   

 

    private void cmd4ActionPerformed(java.awt.event.ActionEvent evt) {                                    

 try{

        db.rs.last();

        this.setCom();    

       

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }

// TODO add your handling code here:

    }                                   

 

    private void cmd2ActionPerformed(java.awt.event.ActionEvent evt) {                                    

try{

        if(!db.rs.previous());

        this.setCom();       

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }  

// TODO add your handling code here:

    }                                   

 

    private void cmd1ActionPerformed(java.awt.event.ActionEvent evt) {                                     

  try{

        db.rs.first();

        this.setCom();    

       

    }catch (Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }   

// TODO add your handling code here:

    }                                    

 

    private void setCom() throws Exception{

       em = db.rs.getString(1);

       un = db.rs.getString(2);

       this.text1.setText(em);

       this.text2.setText(un);

      //  text1.setText( db.rs.getString(1));

       // text2.setText( db.rs.getString(2));

        text3.setText( db.rs.getRow()+"");

    }

    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 

        try{

        db.openConnection("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:mydb","","");

        db.openResultSet("select * from member;");

        //db.rs.next();     

       

      //  this.combo1.removeAllItems();

        while(db.rs.next()){

        this.combo1.addItem(db.rs.getString(1));       

        }               

       db.rs.last();

        setCom();

    

    }catch(Exception ex){

      ex.printStackTrace();

      lb3.setText("program error:"+ex.getMessage());

    }

 //---------------------------

 

 // TODO add your handling code here:

    }               

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new EX402().setVisible(true);

            }

        });

    }

 

EX404.java

package javaapplication;

public class EX404 {

  //  static double div(int x,int y)throws ArithmeticException{

      static double div(int x,int y){

      if (y==0)

        throw new ArithmeticException();

        return x/y;} //end div

     

      static double div2(int x,int y)throws NumException{

          if(y >10)

              throw new NumException();

          return x/y;

      } //end div2

   

    /** Creates a new instance of EX404 */

    public EX404() {

    }

public static void main(String[] args) {             

        try{ 

        System.out.println(div(10,10));

        System.out.println(div2(1,20));  // ·ÓãËéä´é¼ÅÅѾ¸ì¢Í§ error  = number error

        }catch (Exception ex){

         ex.printStackTrace();  

     //    System.err.print(ex.getMessage());     

         System.out.println(ex.getMessage());     

    } 

       

        // TODO code application logic here

    }   

} //end class

 

class  NumException extends Exception{

public NumException()

  {super("number error");}

}

 

EX501.java

package javaapplication;

public class EX501 extends javax.swing.JApplet {

   

    /** Creates a new instance of EX501 */

    public EX501() {

    }

 

    public void init()

    {System.out.println("init");}

   

    public void start()

    {System.out.println("start");}

    

      public void paint()

    {System.out.println("paint");}

    

       public void stop()        

    {System.out.println("stop");}

      

    public void destroy()        

    {System.out.println("destroy");}

}//end class

 

EX503.java

package javaapplication;

import java.awt.Color;

import java.awt.Graphics;

public class EX503 extends javax.swing.JApplet implements Runnable {

   

    /** Creates a new instance of EX503 */

    public EX503() {

    } //end constructor

     Thread t,t1;

    int a=1;

public void init(){

    }//====================end init()

  public void start(){

    }//================end start()

public void run(){       

           try{

              if (a<=100){

             

               t.sleep(100);

                this.repaint();

          }

           }catch(InterruptedException e){}

     }//=====================end run()

    public void paint(Graphics g){

         t = new Thread(this);

       t.start();

       

        String t1 =  this.getParameter("pt1");

        String t2 =  this.getParameter("pt2");

        String t3 =  this.getParameter("pt3");

       

        t1 = t1==null?"A":t1;

        t2 = t2==null?"B":t2;

        t3 = t3==null?"C":t3;

       

        String v1 =  this.getParameter("pv1");

        String v2 =  this.getParameter("pv2");

        String v3 =  this.getParameter("pv3");

        v1 = v1==null?"100":v1;

        v2 = v2==null?"100":v2;

        v3 = v3==null?"100":v3;

       

        int a1 = Integer.parseInt(v1);

        int a2 = Integer.parseInt(v2);

        int a3 = Integer.parseInt(v3);

       

       

       

     g.drawLine(50,50,50,150); // ¢Õ´àÊé¹á¹ÇµÑé§

     g.drawLine(50,150,150,150);  //¢Õ´àÊé¹á¹Ç¹Í¹

    

    

    

     for (int i = 10;i>=1;i--)  //¢Õ´àÊé¹àÅç¡ æ

     {

     g.drawLine(48,50+i*10,52,50+i*10);

     g.drawString(""+i,30,48+i*10);

     }//end for

     g.drawString(t1,70,165);

     g.drawString(t2,100,165);

     g.drawString(t3,130,165);

     

     a++;

     g.setColor(Color.RED);

     g.fillRect(70,150-a,10,a);

     g.setColor(Color.BLUE);

     g.fillRect(100,150-a,10,a);  

     g.setColor(Color.GREEN);

     g.fillRect(130,150-a,10,a);

    

   

    }//====================end paint()

}//end class

 

EX503_1.java

package javaapplication;

import java.awt.Color;

import java.awt.Graphics;

public class EX503_1 extends javax.swing.JApplet {

    public EX503_1() {

    }

  public void paint(Graphics g){

        String t1 =  this.getParameter("pt1");

        String t2 =  this.getParameter("pt2");

        String t3 =  this.getParameter("pt3");

       

        String v1 =  this.getParameter("pv1");

        String v2 =  this.getParameter("pv2");

        String v3 =  this.getParameter("pv3");

        int a1 = Integer.parseInt(v1);

        int a2 = Integer.parseInt(v2);

        int a3 = Integer.parseInt(v3);

     g.drawLine(50,50,50,150); // ¢Õ´àÊé¹á¹ÇµÑé§

     g.drawLine(50,150,150,150);  //¢Õ´àÊé¹á¹Ç¹Í¹

    

     for (int i = 10;i>=1;i--)  //¢Õ´àÊé¹àÅç¡ æ

     {

     g.drawLine(48,50+i*10,52,50+i*10);

     g.drawString(""+i,30,48+i*10);

     }//end for

     g.drawString(t1,70,165);

     g.drawString(t2,100,165);

     g.drawString(t3,130,165);

     

     g.setColor(Color.RED);

     g.fillRect(70,150-a1,10,a1);

     g.setColor(Color.BLUE);

     g.fillRect(100,150-a2,10,a2);  

     g.setColor(Color.GREEN);

     g.fillRect(130,150-a3,10,a3);

    }

}//end class

 

 

Ex201.java

 

 

package javaapplication;

 

import java.util.Vector;

import javax.swing.*; //for default Model of List1

public class Ex201 extends javax.swing.JFrame {

   private Vector toy,test;

    /** Creates new form Ex201 */

    public Ex201() {

        toy = new Vector();

        test = new Vector();

        initComponents();

    }

private void cmd9ActionPerformed(java.awt.event.ActionEvent evt) {                                    

       DefaultListModel model = (DefaultListModel)this.list1.getModel();

       model.removeAllElements();       

// TODO add your handling code here:

    }   

private void cmd8ActionPerformed(java.awt.event.ActionEvent evt) {                                     

       test.addElement(this.list1.getSelectedValue());

        list2.setListData(test); 

// TODO add your handling code here:

    }          

  private void cmd7ActionPerformed(java.awt.event.ActionEvent evt) {                                     

        DefaultListModel model2 = new DefaultListModel();

        DefaultListModel model = (DefaultListModel)this.list1.getModel();

        Object [] obj = list1.getSelectedValues();

        for (int i=0;i<obj.length;i++)

        {

            model2.addElement(obj[i]);

            this.list2.setModel(model2);

        }

     

// TODO add your handling code here:

    }   

private void cmd6ActionPerformed(java.awt.event.ActionEvent evt) {                                    

    DefaultListModel model = (DefaultListModel)this.list1.getModel();

    model.remove(list1.getSelectedIndex());

   

// TODO add your handling code here:

    }        

  private void list1MouseClicked(java.awt.event.MouseEvent evt) {                                  

    label1.setText(""+this.list1.getSelectedIndex()+" :   "+this.list1.getSelectedValue()); //return obj

// TODO add your handling code here:

    }      

  private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         

 DefaultListModel model = (DefaultListModel)this.list1.getModel();

    model.addElement(JText.getText());   // àÍÒ¢éÍÁÙÅãËÁèÁÒà¢Õ¹µèÍ·éÒÂ

    JText.setText("");

     JText.requestFocus();

     

// TODO add your handling code here:

    }  

  private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 

  JText.requestFocus();

     DefaultListModel model = new DefaultListModel();

    model.addElement(2540);   

    model.addElement(2541);

    model.addElement(2542);

    this.list1.setModel(model);

    this.list1.setSelectedIndex(0);

  

// TODO add your handling code here:

    }      

  private void cmd5ActionPerformed(java.awt.event.ActionEvent evt) {                                    

    DefaultListModel model = (DefaultListModel)this.list1.getModel(); //get ¢éÍÁØÅà´ÔÁÁÒ

    model.addElement("Love you");   // àÍÒ¢éÍÁÙÅãËÁèÁÒà¢Õ¹µèÍ·éÒÂ

// TODO add your handling code here:

    }            

private void cmd4ActionPerformed(java.awt.event.ActionEvent evt) {                                     

    DefaultListModel model = new DefaultListModel();

     model.addElement(2550);

    this.list1.setModel(model);

    model = (DefaultListModel)this.list1.getModel();

    model.addElement(2551);

     

// TODO add your handling code here:

    }     

   private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                        

toy.addElement(JText.getText());

        list1.setListData(toy);

        JText.setText("");

        JText.requestFocus();

// TODO add your handling code here:

    }   

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        

        Object[] o1 = {2540,2541,2542};

        Object  [] o = new Object[10];

    for (int i = 0;i<o1.length;i++)

    {

        o[i]=i+2540;       

    }

    this.list1.setListData(o);

// TODO add your handling code here:

    }    

  private void cmd1ActionPerformed(java.awt.event.ActionEvent evt) {                                    

   cb1.removeAllItems();

        for(int a=0;a<12;a++)

         {

           this.cb1.addItem("ann");

            }

// TODO add your handling code here:

    }    

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Ex201().setVisible(true);

            }

        });

    }

 

Ex206.java

package javaapplication;

import java.sql.*;

import javax.swing.table.DefaultTableModel;

public class Ex206 extends javax.swing.JFrame {

     Statement stmt1;

     Connection con;

    public Ex206() {

        initComponents();

    }

   private void table1MouseClicked(java.awt.event.MouseEvent evt) {                                   

// TODO add your handling code here:

       label1.setText(""+table1.getValueAt(table1.getSelectedRow(),table1.getSelectedColumn()));

    }          

  private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 

// TODO add your handling code here:

        //show ¢éÍÁÙÅã¹µÒÃÒ§

          try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      }catch(ClassNotFoundException ex){      

   }

        try{         

             

           String url = "jdbc:odbc:mydb";        

               con = DriverManager.getConnection(url,"book.mdb","");     

               stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                     ResultSet.CONCUR_READ_ONLY);

        }catch(SQLException e){   

        }

            try{           

            String SQL = "select * from book"; // where type = tan";  

            ResultSet rs = stmt1.executeQuery(SQL);           

            rs.first();

            String[] co ={"Barcode","Title","Author","Price","Type","Year"};

            DefaultTableModel tm = new  DefaultTableModel(co,0);

            table1.setModel(tm);

            Object[] r = new Object[6];

           

            while(rs.next()){

                tm.addRow(r);

                tm.setValueAt(rs.getString(1),tm.getRowCount()-1,0);

                tm.setValueAt(rs.getString(2),tm.getRowCount()-1,1);

                tm.setValueAt(rs.getString(3),tm.getRowCount()-1,2);

                tm.setValueAt(rs.getString(4),tm.getRowCount()-1,3);

                tm.setValueAt(rs.getString(5),tm.getRowCount()-1,4);

                tm.setValueAt(rs.getString(6),tm.getRowCount()-1,5);

            }           

            rs.close();

           

        }catch(SQLException e){         

            System.err.print(e.getMessage());

        }// TODO add your handling code here:

    }     

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Ex206().setVisible(true);

            }

        });

    }

 

Ex301.java

package javaapplication;

import java.sql.*;

public class Ex301 {

    public Ex301() {

    }

public static void main(String[] args) throws Exception  {

    

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");        

            Connection con = DriverManager.getConnection("jdbc:odbc:mydb","","");    

            Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

            String sql ="select * from book;";

            ResultSet rs = stm.executeQuery(sql);

           

            PreparedStatement pstm = con.prepareStatement(sql);

            ResultSet rs2 = pstm.executeQuery(sql);          

                 

              String sql2 ="insert into member values('a@a.com'args,'aaa');"; //µéͧ¡Òà update ¢éÍÁÙÅã¹µÒÃÒ§

            int rc = stm.executeUpdate(sql2);

        

               String sql3 ="insert into member values(?,?);";  //à¤Ã×èͧËÁÒ ? ËÁÒ¶֧ãªéá·¹¤èÒã´¡çä´é

            PreparedStatement pstm3 = con.prepareStatement(sql3);

            pstm3.setString(1,"a@a.com"); //

            pstm3.setString(2,"aaa"); //

            int rc3 = pstm3.executeUpdate();

            rs.next(); //à¾ÃÒТéÍÁÙÅã¹ DB ¨ÐÍÂÙè·Õè Rec ·Õè 0

            System.out.println(rs.getString(1));

            System.out.println(rs.getString(1)); // get «éÓä´é

            System.out.println(rs.absolute(5)); //ÊÑè§ãËéä»·Õèá¶Ç·Õè¡Ó˹´

            System.out.println(rs.getRow());

            System.out.println(rs.isAfterLast()); //àªç¤ÇèÒÍÂÙèá¶ÇÊØ´·éÒÂËÃ×Íà»ÅèÒ  eof

            ResultSetMetaData rsm = rs.getMetaData(); //¤×Í¡Òâʹ٪×èÍ field

            System.out.println(rsm.getColumnCount()); //¹Ñº¨Ó¹Ç¹ field

            System.out.println(rsm.getColumnName(1)); // ºÍ¡ª×èÍ field

con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

           rs.close();

            stm.close();

            con.close();    

    }}

 

Ex302.java

package javaapplication;

import java.sql.*;

public class Ex302 {

    public Ex302() {

    }

  public static void main(String[] args) throws Exception {

         {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");        

            Connection con = DriverManager.getConnection("jdbc:odbc:mydb","","");    

            Statement stm = con.createStatement();

              String sql ="select iif(year<2541,'2529-2540','2541-2550'),count(*) from book group by iif(year<2541,'2529-2540','2541-2550');";

    

           ResultSet rs = stm.executeQuery(sql);  

            while(rs.next())

            {

                System.out.print(rs.getString(1)+":");

                System.out.println(rs.getString(2));

            }         

            rs.close();

            stm.close();

            con.close();  

        // TODO code application logic here

         }    } }

Ex303.java

package javaapplication;

public class Ex303 {

    public Ex303(){

    }

public static void main(String[] args) {

        double s = 10000;

        Tax obj = new Tax();

        obj.salary=s;

        System.out.println(obj.getYearSalary());

        System.out.println(obj.getTax());

        System.out.println(obj.getPerMonth());

        System.out.println(obj.getNet());

        // TODO code application logic here

    }}

 

Ex304.java

package javaapplication;

public class Ex304 {

    public Ex304() {

    }

public static void main(String[] args)throws Exception {

        ConnectBase db = new ConnectBase();

        db.openConnection("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:mydb","","");

        db.openResultSet("select * from member;");

        db.actionQuery("insert into member values('b@b.c','bbb');");

        while(db.rs.next()){

            System.out.println(1);

        }

        db.closeResultSet();

        db.closeConnec();

        // TODO code application logic here

    }}

 

Ex403.java

 

package javaapplication;

public class Ex403 extends javax.swing.JFrame {

     MemberProcess mb = new MemberProcess();

    public Ex403() {

        initComponents();

    }

  private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  

    mb.open();

    this.jTextField1.setText(mb.getEmail());

    this.jTextField2.setText(mb.getUser());

// TODO add your handling code here:

    }       

   public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Ex403().setVisible(true);

            }

        });

    }

 

Ex405.java

package javaapplication;

public class Ex405 {

    public Ex405() {

    }

public static void main(String[] args) {

        product p = new product();

     try{ 

     p.setPrice(0); //´Ù´éÒ¹ËÅѧ¤ÓÊÑè§´éÇÂÇèÒÁÕ thows ËÃ×ÍäÁè

     p.setDiscout(-1);

     p.save();

        }catch (Exception ex){

        System.out.println(ex.getMessage());

        }

        // TODO code application logic here

    }   

}//====================end main class======================

class product{

    private double  price,discount;

   

    public void setPrice(double p)throws ProductException{

     if(p <= 0)throw new ProductException("Price <0["+p+"]","set");

    price = p;

    }//end setPrice

    public void setDiscout(double d) throws ProductException{

     if(d <= 0)throw new ProductException("Discount <0["+d+"]","set");

    discount = d;

    }//end setDiscout  

    public void save()throws ProductException{

        if (price <=0 && discount ==0)

            throw new ProductException("","save");

    }//end save()

}//==================end product================================

class ProductException extends Exception{

    private String status =""; //à¾×èÍà¡çº¢éͤÇÒÁ ¨Ñ§ËÇТͧ¡ÒÃà¡Ô´ err

    public String getStatus()

    {return status;}

    public ProductException(String t,String s){

       super(t);

        status =s;

    } //end Method constructor

}//===============end class ProductException===================

Ex502.java

package javaapplication;

import java.awt.Graphics;

public class Ex502 extends javax.swing.JApplet {

    public Ex502() {

    }

public void paint(Graphics g){

     for (int i = 1;i<=10;i++){  

     g.drawString("ann",25,25*i);  //˹èÇÂà»ç¹ pixel

     g.drawLine(10,25,10,200); // ¢Õ´àÊé¹á¹ÇµÑé§

     g.drawLine(10,25,30,25);  //¢Õ´àÊé¹á¹Ç¹Í¹

     g.drawRect(10,25,80,200);

     g.fillRect(100,60,40,60);

     g.fillOval(180,60,40,40);

     }//end for

 } //end paint

}

 

 

Ex506.java

package javaapplication;

import java.awt.Graphics;

public class Ex506 extends javax.swing.JApplet implements Runnable {

    public Ex506() {

    }//end constructor()

    Thread t,t1;

    int a = 1;

   

    public void start(){

     t = new Thread(this);  // this ËÁÒ¶֧¤ÅÒÊ

     t.start(); // ¨Ñ´ tread ãËéÁѹàÃÔèÁ·Ó§Ò¹

    }//end start()

   

    public void run(){

      t1 = Thread.currentThread();

      while(a<=10){  // ·Óá¤è 10 ¤ÃÑé§áÅéÇËÂØ´

           repaint();          

           try{

                    //t1.sleep(1000);  //ÃÍä»  1 ÇÔ¹Ò·Õ

               t1.sleep(100); 

    }catch(InterruptedException e){}

    }//end while

     }//end run()

    public void paint(Graphics g){

        g.fillRect(80,30,10*a++,50);

    } //end paint()  

}//end class

 

Ex506_1.java

package javaapplication;

import java.awt.Graphics;

public class Ex506_1 extends javax.swing.JApplet implements Runnable {

    public Ex506_1() {

    }//end constructor()

    Thread t,t1;

    int a;

public void start(){ // ·Ó§Ò¹Ãͺà´ÕÂÇ ¨¹¡ÇèҨж١àÃÕ¡ãËÁè

    }//end start()

public void run(){  //¨Ð·Ó·Ø¡¤ÃÑé§àÁ×èÍÁÕ¡Òà start()

           try{

               a++;

                    //t1.sleep(1000);  //ÃÍä»  1 ÇÔ¹Ò·Õ

               t1.sleep(100); 

               this.repaint();

    }catch(InterruptedException e){}

     }//end run()

    public void paint(Graphics g){

         t = new Thread(this);

        g.fillRect(10,10,10+a,50);

        t.start();

         } //end paint()  

}//end class

 

Ex508.java

package javaapplication;

import java.awt.*;

import javax.swing.*;

  import java.awt.Color;

import java.awt.Graphics;

public class Ex508 extends javax.swing.JApplet implements Runnable {

    public Ex508() {

    }//end structor

JLabel t1 = new JLabel("ann");

Thread t;

int a = 1;

Container sju = getContentPane();

public void run(){

    try{

        while (a <=100){

             t1.setText(""+a++);

              t.sleep(1000);

           }catch(InterruptedException e){}

}//end run()

public void init(){

    t = new Thread(this);

    sju.setLayout (new FlowLayout());

    t.start();

    this.add(t1);

    sju.add(t1);

}//end init()

}//end class

 

 

Ex509.java

package javaapplication;

import java.awt.*;

import javax.swing.*;

import java.net.*;  // ãªé¡Ñº network

import java.io.*;

public class Ex509 extends javax.swing.JApplet implements Runnable{

    public Ex509() {

    }//end constructor

    String message;

public void init(){

      try{

        URL url = new URL(getCodeBase(),"Data.txt");  //¹Ó file ¢éÍÁÙÅä»à¡çºäÇé·Õè Build/Class

        BufferedReader br= new  BufferedReader(

                    new InputStreamReader(url.openStream()));

           message = br.readLine();           

           }catch(Exception e){}  // ¶éÒÃкت¹Ô´¢Í§ error ¼Ô´ ¡çÊ觼ŵèÍ error ä´é

    }//end init================

public void paint(Graphics g){

      g.drawString("Message read from server",10,10);

      g.drawString(message,15,30);

    System.out.println( this.getAppletContext().toString());

    }//end paint()

   public void run(){

   }//end run()

}//end class

 

MemberProcess.java

package javaapplication;

public class MemberProcess {

    private String email,user;

    private ConnectBase db = new ConnectBase();

  

   

    public void setEmail(String e){email = e;}

    public void setUser(String u){user=u;}

    public String getEmail(){return email;}

    public String getUser(){return user;}

   public void open(){

   try{

       db.openConnection("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:mydb","","");

       db.openResultSet("select * from member;");       

       db.rs.next();

       email = db.rs.getString(1);

    }catch (Exception ex){

      ex.printStackTrace();  

    }    

   }

   public void close(){

     try{ 

       db.closeResultSet();

       db.closeConnec();

        }catch (Exception ex){

      ex.printStackTrace();  

    } 

   } //end save

   public boolean next(){

       boolean n = false;

       try{ 

           if(!db.rs.next()) db.rs.last();

       email = db.rs.getString(1);

       user = db.rs.getString(2);

       n = true;

       db.closeConnec();

        }catch (Exception ex){

      ex.printStackTrace();  

    } 

       return n;

   }//end next()

    public int save(){

       int rc =0;

        try{

        String sql = "insert into member values('"+email+"','"+user+"')";       

         rc =  db.actionQuery(sql);

       }catch (Exception ex){

      ex.printStackTrace();  

    } 

        return rc;

   }  //end save

    public MemberProcess() {

    }

}

 

 

 

 

Table.java

package javaapplication;

import javax.swing.table.*;

public class Table extends javax.swing.JFrame {

    public Table() {

        initComponents();

    }

  private void cmd5ActionPerformed(java.awt.event.ActionEvent evt) {                                    

         DefaultTableModel tm =  (DefaultTableModel)table1.getModel();

           tm.addColumn("D"); //.addRow(rs);

// TODO add your handling code here:

    }          

private void cmd4ActionPerformed(java.awt.event.ActionEvent evt) {                                    

        DefaultTableModel tm =  (DefaultTableModel)table1.getModel();

         Object[]  rs = {"","",""};

          tm.addRow(rs);

// TODO add your handling code here:

    }   

   private void cmd3ActionPerformed(java.awt.event.ActionEvent evt) {                                    

        //TableModel tm = new TableModel();  //TableModel à»ç¹ Abstract ËéÒÁãªéÊÃéÒ§ obj ´éÇ»ÃÐ⤠New

        Object[] obj = {"A","B","C"};

        DefaultTableModel tm =  new DefaultTableModel(obj,1);

        this.table1.setModel(tm);

// TODO add your handling code here:

    }         

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        

    for (int i = 0;i<table1.getRowCount();i++)

    {

        table1.setValueAt(i*100,i,0);

    }

// TODO add your handling code here:

    } 

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

    this.table1.setValueAt("Test",0,0);  //ãÊè¤èÒà¢éÒä»ã¹µÒÃÒ§

    System.out.println(this.table1.getValueAt(0,0)); //´Ö§¤èÒÍÍ¡¨Ò¡µÒÃÒ§

    System.out.println(this.table1.getColumnCount());

    System.out.println(this.table1.getRowCount());

// TODO add your handling code here:

    }        

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Table().setVisible(true);

            }

        });

    }

 

Tax.java

package javaapplication;

public class Tax {

    public double salary;   

    public double getYearSalary()

    {return salary*12;}

    public double getTax()

    {return this.getYearSalary()*0.1;}

    public double getPerMonth()

    {return this.getTax()/12;}

    public double getNet()

    {return this.getYearSalary()-this.getTax();}      

    public Tax() {

    }}

 

Test1.java

package javaapplication;

public class Test1 extends javax.swing.JFrame {

    public Test1() {

        initComponents();

    }

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        

    int a,b,c;

    a = Integer.parseInt(T1.getText());

    b = Integer.parseInt(T2.getText());

    c =a+b;

    T3.setText(" "+c);

// TODO add your handling code here:

    }     

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        T3.setText(T1.getText()+T2.getText());

    // TODO add your handling code here:

    }     

public static void main(String args[]) {       

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Test1().setVisible(true);

            }

        });    }

 

Test3.java

package javaapplication;

public class Test3 extends javax.swing.JFrame {

public Test3() {

  initComponents();

    }

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

    this.jTextField1.setText("OHAYO");        // ËÁÒ¶֧¤ÅÒʵÑÇàͧËÃ×ÍËÁÒ¶֧ obj

// TODO add your handling code here:

    }          

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Test3().setVisible(true);

            }

        });

    }

 

Test4.java

package javaapplication;

public class Test4 extends javax.swing.JFrame {

    public Test4() {

        initComponents();

    }

private void Cmd8ActionPerformed(java.awt.event.ActionEvent evt) {                                    

   Cmd7.setEnabled(false);   

   // boolean a = true;   

    if (Cmd7.isEnabled())   

    {

          Cmd7.setEnabled(false);

    }

    else{

         Cmd7.setEnabled(true);

    }

// TODO add your handling code here:

    }   

private void Cmd7ActionPerformed(java.awt.event.ActionEvent evt) {                                    

    if (Cmd7.getText().equals("Add"))

    {

        Cmd7.setText("Save");

    }

    else

    {

       Cmd7.setText("Add");

    }

// TODO add your handling code here:

    }        

  private void CmdCloseActionPerformed(java.awt.event.ActionEvent evt) {                                        

    System.exit(0);

// TODO add your handling code here:

    }   

private void T1ActionPerformed(java.awt.event.ActionEvent evt) {                                  

        L1.setText("OHAYO");

        Ch1.setText("OHAYO");

        Text1.setText(L1.getText());

        T2.setText(Text1.getText());

// TODO add your handling code here:

    }            

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Test4().setVisible(true);

            }

        });

    }

 

Test5.java

package javaapplication;

public class Test5 extends javax.swing.JFrame {

    int a,b,c,d,m,n;   

    public Test5() {

        super("Hi calculate");

        initComponents();

    }

   private void text2ActionPerformed(java.awt.event.ActionEvent evt) {                                     

    text3.requestFocus();

// TODO add your handling code here:

    }     

private void text1ActionPerformed(java.awt.event.ActionEvent evt) {                                      

 text2.requestFocus();

// TODO add your handling code here:

    }      

   private void ck1MouseClicked(java.awt.event.MouseEvent evt) {                                

    if (ck1.isSelected())

    { 

        m = d *15/100;

        n = d-m;

        text4.setText(""+n);

    }  

    else

    {

        text4.setText(""+d);

    }

// TODO add your handling code here:

    }     

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

    a = Integer.parseInt(text1.getText());   //  a = Double.parseDouble(text1.getText());

    b = Integer.parseInt(text2.getText());

    c = Integer.parseInt(text3.getText());

    d = (a * b/100)*c;

   

    text4.setText(""+d);

// TODO add your handling code here:

    }  

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        

    System.exit(0);

// TODO add your handling code here:

    }    

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Test5().setVisible(true);

            }

        });

    }

 

 

Test6.java

 

 

package javaapplication;

public class Test6 extends javax.swing.JFrame {

    public Test6() {

        initComponents();

    }

  private void cmd2ActionPerformed(java.awt.event.ActionEvent evt) {                                    

   text1.setText(""+cb1.getSelectedItem());

// TODO add your handling code here:

    }     

private void cmd1ActionPerformed(java.awt.event.ActionEvent evt) {                                    

    cb1.addItem("May");

// TODO add your handling code here:

    }   

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Test6().setVisible(true);

            }

        });

    }

 

 

 

 

TestDB.java

 

 

 

 

 

 

 

package javaapplication;

import java.sql.*;

import javax.swing.table.DefaultTableModel;

public class TestDB extends javax.swing.JFrame {

     Statement stmt1;

     Connection con;

    public TestDB() {

        initComponents();

    }

  private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        

//show ¢éÍÁÙÅã¹µÒÃÒ§

          try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      }catch(ClassNotFoundException ex){      

   }

        try{         

           String url = "jdbc:odbc:mydb";        

               con = DriverManager.getConnection(url,"book.mdb","");     

               stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                     ResultSet.CONCUR_READ_ONLY);

        }catch(SQLException e){   

            //System.err.print(e.getMessage());

        }

            try{            

            String SQL = "select * from book order by BARCODE ";

            ResultSet rs = stmt1.executeQuery(SQL);           

            rs.first();

           //´Ö§¢éÍÁÙŨҡµÒÃÒ§

            String[] co ={"Barcode","Title","Author","Price","Type","Year"};

            DefaultTableModel tm = new  DefaultTableModel(co,0);

            table1.setModel(tm);

            Object[] r = new Object[6];

            while(rs.next()){

                tm.addRow(r);

                tm.setValueAt(rs.getString(1),tm.getRowCount()-1,0);

                tm.setValueAt(rs.getString(2),tm.getRowCount()-1,1);

                tm.setValueAt(rs.getString(3),tm.getRowCount()-1,2);

                tm.setValueAt(rs.getString(4),tm.getRowCount()-1,3);

                tm.setValueAt(rs.getString(5),tm.getRowCount()-1,4);

                tm.setValueAt(rs.getString(6),tm.getRowCount()-1,5);

            }           

            rs.close();

        }catch(SQLException e){         

            System.err.print(e.getMessage());

        }// TODO add your handling code here:

// TODO add your handling code here:

    }   

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                     

        try{

            stmt1.executeUpdate("update table1 set test2 = 'personal'");

        }catch(SQLException e){

        }

    }       

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                     

        try{

            String SQL = "select * from book order by BARCODE ";

            ResultSet rs = stmt1.executeQuery(SQL);

            rs.first();

            jTextField1.setText(rs.getString("BARCODE"));           

            jTextField2.setText(rs.getString("TITLE"));           

            jTextField3.setText(rs.getString("AUTHOR"));        

            rs.close();

        }catch(SQLException e){

            System.err.print(e.getMessage());

        }// TODO add your handling code here:

    }     

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

//load db

       try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      }catch(ClassNotFoundException ex){

        //    jTextArea2.setText(ex.getMessage());

   }

        try{         

           String url = "jdbc:odbc:mydb";        

               con = DriverManager.getConnection(url,"book.mdb","");     

               stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                     ResultSet.CONCUR_READ_ONLY);

        }catch(SQLException e){

            //System.err.print(e.getMessage());

        }// TODO add your handling code here:

       

    }     

public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new TestDB().setVisible(true);

            }

        });

    }

   

 

 

exmain.java

package javaapplication;

import java.awt.Graphics;

import java.awt.*;

import java.applet.*;     

public class exmain extends javax.swing.JApplet {

    public exmain() {

    }//end constructor

public void init(){

        try{Thread.sleep(5000);} catch(Exception e){}

        AppletContext a = getAppletContext();

        exsub ca = (exsub)a.getApplet("child"); //à»ç¹ª×èÍ name ·ÕèÁÒ¨Ò¡ html

        ca.sayHello("Hello how do you do?");

    }//end init()

    public void paint(Graphics g){

        g.drawString("Main Applet",10,80);

    }//end paint

}//end class

 

exsub.java

package javaapplication;

import java.awt.Graphics;

public class exsub extends javax.swing.JApplet {

   

    public exsub() {

    }//end constructor

   String s = "Child Applet";

    public void sayHello(String s){

        this.s =s;

        repaint();

    }//end sayHello

  public void paint(Graphics g){

        g.drawString(s,50,20);

    }//end paint()   }//end class

 

*****************************สร้างไฟล์ HTML**********************************

EX501.html

EX503.html

EX503_1.html

EX505.html

Ex502.html

Ex506.html

Ex506_1.html

Ex508.html

Ex509.html

Exsup_mainsub.html

 

copy right @ ณัฎภัทรศญา ทับทิมเทศ, "การเขียนโปรแกรมเชิงวัตถุ”, 2552

 

บรรณานุกรม

H.M.Deital Deitel &Associates,Inc., P.J.Deitel Deitel&Associates,Inc, " Java  How
to Program 4th", Prentice Hall,USA,2002         
http://www.netbeans.org/kb/50/index.html
http://java.sun.com/docs/books/tutorial/uiswing/index.html

http://java.sun.com/docs/books/tutorial/uiswing/components/components.html
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JComponent.html
http://java.sun.com/docs/books/tutorial/uiswing/TOC.html
Help, Netbeans 5.0, 2006

 

www.No-Poor.com

Java,จาวา,การเขียนโปรแกรมภาษา Java,กิฟฟารีน,giffarine,บทเรียนคอมพิวเตอร์,ไอที,IT,กรณีศึกษา,สื่อการสอน,โปรเจ็ค,project