Pages

Sunday, May 23, 2010

How to connect Access Database into Java ---ජාවා වලට Access සම්බන්ධ කරන හැටි

අද නම් මං කියන්න යන්නේ ජාවා භාෂාව ටිකක් දන්න අය සදහා වැදගත් වන පාඩමක්. ඒ කියන්නේ ජාවා සදහා  access database 1 connect කර ගන්නේ කොහොමද කියලා.
 පළමුවෙන්ම අපි access database 1 හදා ගෙන ඉමු. microsoft access open කර ගෙන මෙන්න මේ පින්තූරයේ දක්වෙන ලෙස  new data base 1 හදා ගන්න ඕනේ.
 blank database click කර database 1ට නමක් දෙන්න .
 අපිට කෑමති නමක් දෙන්න පුලුවන් database 1 සදහා . MyAccessDatabase1 ලෙස මං දෙනවා.

ඉන්පසු  create බොත්තම ඔබා නව  database 1 හදා ගන්න ඕනේ.මෙන්න මේ විදියට පෙනේවි එය.




ඉන්පසු රූපයේ පෙනෙන රූපයේ  ID යන  field 1 right click කර  අව්ශ්‍ය පරිදි rename කර ගන්න.
එවැනි තවත් කිහිපයක් සාදා ගෙන එවාද අවශ්‍ය ලෙස වෙනස් කර ගන්න ඔනේ.අවශ්‍ය ලෙස කියන්නෙ අපි ජාවා සදහා භාවිතා කරනා නමම මෙහිද භාවිතා කල යුතු වෙනවානමුත් මගේ   වැඩසටහනේ ඇත්තේ  save button 1 පමනක් නිසා නම් වල ගැටලු ඇති වන්නේ නැත.මම මෙහි පිලිවෙලින්  nic ,name ,tp,add1 ලෙස යොදා ඇත.



ඉහත පරිදි  rename කර ගත් පසු  table 1 save කර ගැනීමට අවශ්‍ය වෙනවා.ඒ සදහා  ctr+s බොත්තම් ඔබා table 1 සදහා නමක් දෙන්න ඕනේ.මං  Details කියලා නම දෙනවා.දැන් details tab 1 මත right click කල විට එන  pop up list 1 design view ගොස් අව්ශ්‍ය ආකාරයට field properties වෙනස් කර ගන්න ඕනේ.මම nic :text ලෙසද tp :number ලෙසද වෙනස් කරනවා.ඉන්පසු save කර ගත් විට මූලික පියවර අවසන්.

දැන් අව්ශ්‍ය වන්නේ සාදා ගැනිමය්. ඒ සදහා පරිගණකයේ start--control panel--adminsitrative tools--Data sources(odbc) open කර ගන්න ඕනේ.

පහත රූප වල දැක්වෙන ආකරයට systemDSN tab 1 click කර එන මෙනුවේ.microsoft Access Driver(*.mdb,*.accdb) select කර finish කරන්න. 



data source සදහා නමක් ලබා දී select මෙනුවෙන් අප සාදා ගත් database 1 තිබෙන තැනට ගොස් එය තෝරා දිය යුතුය්. ඉන්පසු සියල්ල  ok කරන්න.මම data source සදහා accesstojava ලෙස දෙනවා.


දැන් පියවර අවසාන ය. අවසාන පියවර වන්නේ මෙය සදහා ජාවා වලින් වැඩසටහනක් සාදා ගැනීමය.මෙහි දැක්වෙන්නේ මා සෑදූ කුඩා වැඩසටහනකි.එහි සිදු වන්නේ interface 1 යම් දත්ත සදහන් කර save කල විට ඒවා database 1 save වීමය්.එහි  class file eke codes මෙහි දැක්වේ. 


package pubudublog;
/*
@author Pubudu Nawarathna
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class Main implements ActionListener {

    JFrame jf2 = new JFrame("Details of the Customer");
    JLabel jl1 = new JLabel("Name");
    JLabel jl2 = new JLabel("Address");
    JLabel jl3 = new JLabel("NIC Number");
    JLabel jl4 = new JLabel("Tele: Number");
    JTextField jt1 = new JTextField();
    JTextField jt2 = new JTextField();
    JTextField jt3 = new JTextField();
    JTextField jt4 = new JTextField();
    JButton jb1 = new JButton("SAVE");

    public void Details() {

        jf2.setDefaultCloseOperation(jf2.DISPOSE_ON_CLOSE);

        jf2.setTitle("how 2 connect access database into java");
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        jf2.setBounds((screenSize.width - 650) / 2, (screenSize.height - 450) / 2, 600, 450);

        jl3.setBounds(50, 60, 100, 50);
        jl1.setBounds(50, 110, 100, 50);
        jl2.setBounds(50, 160, 100, 50);
        jl4.setBounds(50, 210, 100, 50);

        jt3.setBounds(180, 70, 200, 25);
        jt1.setBounds(180, 120, 200, 25);
        jt2.setBounds(180, 170, 200, 25);
        jt4.setBounds(180, 220, 200, 25);

        jb1.setBounds(350, 310, 80, 28);

        Container c2 = jf2.getContentPane();
        c2.setLayout(null);
        c2.setBackground(Color.lightGray);
        c2.add(jl1);
        c2.add(jl2);
        c2.add(jl3);
        c2.add(jl4);
        c2.add(jt2);
        c2.add(jt3);
        c2.add(jt4);
        c2.add(jt1);
        c2.add(jb1);

        jb1.addActionListener(this);
        jf2.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jb1) {

            String name = jt1.getText();
            String add = jt2.getText();
            String nic = jt3.getText();
            String tp = jt4.getText();

            try {

                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con = DriverManager.getConnection("jdbc:odbc:accesstojava_test1", "", "");
                Statement stmt = con.createStatement();
                stmt.executeUpdate("INSERT INTO Details VALUES ('" + nic + "', '" + name + "', '" + tp + "','" + add + "')");
                JOptionPane.showMessageDialog(null, "Complete");
                clear();

            } catch (Exception ex) {
                JOptionPane.showMessageDialog(null, "Customer details allready in the database");
                jt3.setText("");
                System.out.println(ex);
            }
        }
    }

    void clear() {
        jt1.setText("");
        jt2.setText("");
        jt3.setText("");
        jt4.setText("");
        jt3.grabFocus();
    }

    private class KeyAdapterImpl extends KeyAdapter {

        @Override
        public void keyReleased(java.awt.event.KeyEvent evt) {
        }
    }

    public static void main(String[] args) {
        new Main().Details();
    }
}



/////////////////////////////////////////////////////////////finished programm///////////////////////////////////////////////////



මෙහි Connection con = DriverManager.getConnection("jdbc:odbc:accesstojava_test1", "", ""); පේලියේ accesstojava_test1 ලෙස අත්තේ අපගේ odbc connector 1 නමය්.
stmt.executeUpdate("INSERT INTO Details VALUES ('" + nic + "', '" + name + "', '" + tp + "','" + add + "')");
පේලියේDetails යනු අපගේ table 1 නමය්.

මුල ඉදන්  codes කියලා දෙන්න ගියොත් නම් ඉතින් ජාවා පාඩමක් වෙනවා නේ.ඒ නිසා තමය් සරලව වෙන දේ පැහැදිලි කලේ.මොකක් හරි ගෑටලුවක් තියෙනවා නම් එවා අහන්නත් ඔයාලට පුලුවන්.වෑඩේ හරි ගියොත් comment 1දාලා අනිඅක් අයටත් කියන්න.




No comments:

Post a Comment