Campus projects එපාවෙලා නම් - Intermediate

MihiCherub

Well-known member
  • Sep 14, 2009
    18,905
    1
    9,708
    113
    Gampaha
    Hour 02 - Creating Database Connection - Intermediate

    හරි App එක code කරන්න කලින් එක database Connection එක හදාගෙන ඉමු. ගොඩක් අලුතෙන්ම Apps හදන අය database class එකක් වෙනම ලියන්න නෑ. හැමෝම කරන්නෙ query use කරන තැන් වලට database connection එකක් හදාගන්න එක. ඒත් ඒක කරදරයි. ඒ වගේම efficiency නෑ. හැම query 1ක් ගානෙම db connection එක හදාගන්නයි data set කරන්නයි ගියාම අමතර විශාල ප්‍රමානයක් codes ලියන්න වෙනව. අනික ගොඩක් කාලය අපතේ යනව. ඒ නිසා වෙනම class එකක් ලියාගමු. මේ app එක පොඩියට කරන එකක් නිසා ඉන්න package එකේම class එක ලිව්වට වරදක් නෑ. ඒත් විශාල app එකක් professionally හදනවා නම් gui තියෙන package එකේම classes create කරන්නෙ නැ. classes සදහා වෙනම package එකක් create කරන්න ඕනෙ.

    Hour 02 - Creating Database Connection - Java Intermediate

    ගොඩක්ම java apps හදන්නෙ mysql db එක use කරල. වෙනවෙන db servers දැනගත්තට කමක් නෑ. mysql use කරන එක තමා ලේසිම. db connection එක හදාගන්න අමතර codes ටිකක් ඕනෙ වෙනව. ඒත් ඒ codes අපි ලියන්න ඕනෙ නෑ. sql class library එක හරහා import කරල ඒ codes ගන්න පුලුවන්.

    මුලින්ම මේ Library එක DL කරගන්න.

    Download Java SQL Library 5.1.23


    හරි දැන් කලින් NetBeans IDE එකේ Create කරගත්ත StudentRegistration Project එකට මේ library එක දාල code එක ලියාගමු.

    අලුත් db class එකක් හදා ගන්න.
    Right click StudentRegistration > New > Java Class


    20_zpscd7bd05b.jpg

    figure 2.0

    Class Name එක විදියට db දාන්න. Finish.

    21_zps05b04d4b.jpg

    Figure 2.1

    හරි දැන් library එක දාගමු
    Right Click Libraries > Add JAR/Folder > Open SQL Libary jar file (see figure 2.2 n 2.3)


    22_zps1c19bb6d.jpg

    figure 2.2

    db class n SQL db library එක Add කිරීමෙන් අනතුරුව.

    23_zps4d5cc12f.jpg

    figure 2.3

    හරි දැන් Code එක ලියමු. code එක එකපාර copy paste කරල දැන්මොත් සදා අනාතයි. ඒ නිසා තේරුමක් ඇතිව ලියමු. indent කරල Step by step පැහැදිලිව ලියන්න. ඒ වගේම මෙතනදි මම හැම code එකක්ම ලියන්න වෙන්න නැති බවත් පැහැදිලි කරල දෙනව. ඒවගේම සමහර codes generate කරගන්න විදියත් දානව. ඒ නිසා Step by step කරන්න. එකපාර copy paste කලොත් ඒව දැන ගන්න බැරි වෙනව.

    db.java file එක double click කරල open කරගන්න.

    මුලින්ම Static connection එකක් හදාගන්න ඕනෙ. ඒකට db class එක ඇතුලේ උඩින්ම Static connection එක හදාගන්න.


    Code:
    static Connection con;
    දැන් insert, update, delete queries වලට එක method එකකුත් search query එකට තව method එකකුත් ලියාගමු. අපිට හැම query එකක්ම මෙතන ලියන්න බෑ. මොකද එක එක තැන්වලදි යවන query වර්ග වෙනස් වෙන නිසා. ඒ නිසා ඔක්කොම queries වලට හරියන විදියට පැරා වල String එකක් අල්ලගන්න පුලුවන් විදියට method එක ලියාගන්න.

    for insert, update, delete queries. මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙන්නෙ නැති නිසාත්, method එක හරහා data db එකට යවන නිසා method එක මේ විදියට හදාගන්න.

    Code:
    public static void setData(String s) {
    }
    for search query මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙනව. මොකද අපි Search කරන result එක නැවත අපි search කරපු තැනට අරගන්න ඕනෙ. ඒ නිසා return කරගන්න පුලුවන් විදියෙ method එකක් හදාගන්න.
    Code:
    public static ResultSet getdata(String c) {
        return null;
    }
    හරි දැන් setData method එක ඇතුලට දන්න කියන codes ටික දාගන්න. cast කලේ නැති උනාට කමක් නෑ. IDE එකෙන් cast කරන්න කියල පෙන්නල IDE එකෙන්ම cast කරල දානව.
    Code:
    Class.forName("com.mysql.jdbc.Driver");
    con = (Connection) DriverManager.getConnection("jdbc:mysql:///students", "root", "123");
    con.createStatement().executeUpdate(s);
    හරි දැන් exception එකක් throw වෙන නිසා exception handle කරන්න කියල IDE එකෙන් කියනව. ඒ නිසා IDE එකෙන් දෙන Option වලින් Surround block with try catch කියන option එක තෝරන්න. එතකොට method එක මෙන්න මේවිදියට තියෙන්න ඕනෙ. catch දෙකක් තිබුනට අවුලක් නෑ.

    Code:
    public static void setData(String s) {
        try {
        Class.forName("com.mysql.jdbc.Driver");
        con = (Connection) DriverManager.getConnection("jdbc:mysql:///students", "root", "123");
        con.createStatement().executeUpdate(s);    
        } 
        catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(db.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    දැන් getData method එක ඇතුලට දන්න කියන codes ටික දාගන්න. cast කලේ නැති උනාට කමක් නෑ. IDE එකෙන් cast කරන්න කියල පෙන්නල IDE එකෙන්ම cast කරල දානව.
    Code:
    Class.forName("com.mysql.jdbc.Driver");
    con = (Connection) DriverManager.getConnection("jdbc:mysql:///students", "root", "123");
    Search කරල එන result එක අල්ලගන්න ඕනෙ නිසා resultset එකක් ඕනෙ වෙනව. මේක තමයි අපි search query එක එවපු තැනට ආයිත් return කරන්නෙත්.
    Code:
    ResultSet rs = con.createStatement().executeQuery(c);
    return rs;
    හරි දැන් exception එකක් throw වෙන නිසා exception handle කරන්න කියල IDE එකෙන් කියනව. ඒ නිසා IDE එකෙන් දෙන Option වලින් Surround block with try catch කියන option එක තෝරන්න. එතකොට method එක මෙන්න මේවිදියට තියෙන්න ඕනෙ. catch දෙකක් තිබුනට අවුලක් නෑ.

    Code:
    public static ResultSet getdata(String c) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = (Connection) DriverManager.getConnection("jdbc:mysql:///students", "root", "123");
            ResultSet rs = con.createStatement().executeQuery(c);
            return rs;
        } 
        catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(db.class.getName()).log(Level.SEVERE, null, ex);
        }
    
        return null;
    }
    දැන් සම්පූර්න code එක ලියාගෙන ඉවරයි. code එකේ කිසිම තැනක් රතුපාටින් තියෙන්නෙ බෑ. සමහරවිට imports වල අවුලක් තියෙන්න පුලුවන් ඒක ctrl+shift+I keys press කරල imports fix කරගන්න. මෙන්න මේටික auto import වෙලා තියෙන්නෙ ඕනෙ.
    Code:
    import com.mysql.jdbc.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    සම්පූර්න code එක අන්තිමට තියෙන්නෙ ඕනෙ මෙන්න මේවිදියට. කොහෙවත් errors තියෙන්නෙ බෑ.

    24_zps38bd8cdf.jpg

    figure 2.4

    දැන් code එක සම්පුර්නයි. මේ code එකෙත් එකම lines repeat වෙලා තියෙනව පේනවනෙ. ඒවත් නැති කරල තවත් හොද db class එකක් ගහන්න පුලුවන්. ගුරුමුෂ්ටි ටිකක් තියාගත්ත.

    Visual C# වලින් db එක ගහන හැටි ඊලගට බලමු.


     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,905
    1
    9,708
    113
    Gampaha
    Hour 02 - Creating Database Connection - Intermediate

    Hour 02 - Creating Database Connection - C# Intermediate

    ගොඩක්ම C# apps හදන්නෙ visual C# inbuilt db එක use කරල. ඒත් Microsoft access use කරන එක තමා ලේසිම. ගොඩක් projects වලට use කරන්න කියන්නෙත් accessනෙ. db connection එක හදාගන්න අමතර codes ටිකක් ඕනෙ වෙනව. ඒත් ඒ codes අපි ලියන්න ඕනෙ නෑ. sql class library එක හරහා import කරල ඒ codes ගන්න පුලුවන්.

    මුලින්ම මේ Library එක DL කරගන්න.


    Download C# SQL Library 5.0.9.0


    හරි දැන් කලින් Visual C# IDE එකේ Create කරගත්ත StudentRegistration Project එකට මේ library එක දාල code එක ලියාගමු.

    අලුත් db class එකක් හදා ගන්න.
    Right click StudentRegistration > Add > New Item


    20_zpsc0f4b236.jpg

    figure 2.5

    Select Class > Class Name එක විදියට db.cs දාන්න. Add.

    21_zps4b47d122.jpg

    figure 2.6

    හරි දැන් library එක දාගමු
    Right Click References > Add Reference


    22_zps8f640556.jpg

    figure 2.7

    Select Browse > Select downloaded library > ok

    23_zps8666ab93.jpg

    figure 2.8

    හරි දැන් Code එක ලියමු. code එක එකපාර copy paste කරල දැන්මොත් සදා අනාතයි. ඒ නිසා තේරුමක් ඇතිව ලියමු. indent කරල Step by step පැහැදිලිව ලියන්න. ඒ වගේම මෙතනදි මම හැම code එකක්ම ලියන්න වෙන්න නැති බවත් පැහැදිලි කරල දෙනව. ඒවගේම සමහර codes generate කරගන්න විදියත් දානව. ඒ නිසා Step by step කරන්න. එකපාර copy paste කලොත් ඒව දැන ගන්න බැරි වෙනව.

    db.cs file එක double click කරල open කරගන්න.

    මුලිනම references වලට දාගත්ත library එක import කරගන්න ඕනෙ. දැනට තියෙන imports වලට යටින්ම import කරගන්න.


    Code:
    using System.Data.OleDb;
    දැන් Static connection එකක් හදාගන්න ඕනෙ. ඒකට db class එක ඇතුලේ උඩින්ම Static connection එක හදාගන්න.

    Code:
    static OleDbConnection con;
    දැන් insert, update, delete queries වලට එක method එකකුත් search query එකට තව method එකකුත් ලියාගමු. අපිට හැම query එකක්ම මෙතන ලියන්න බෑ. මොකද එක එක තැන්වලදි යවන query වර්ග වෙනස් වෙන නිසා. ඒ නිසා ඔක්කොම queries වලට හරියන විදියට පැරා වල String එකක් අල්ලගන්න පුලුවන් විදියට method එක ලියාගන්න.

    for insert, update, delete queries. මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙන්නෙ නැති නිසාත්, method එක හරහා data db එකට යවන නිසා method එක මේ විදියට හදාගන්න.


    Code:
    public static void setData(String s) {
    }
    for search query. මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙනව. මොකද අපි Search කරන result එක නැවත අපි search කරපු තැනට අරගන්න ඕනෙ. ඒ නිසා return කරගන්න පුලුවන් විදියෙ method එකක් හදාගන්න.
    Code:
    public static OleDbDataReader getData(String c){
        return null;
    }
    හරි දැන් setData method එක ඇතුලට දන්න කියන codes ටික දාගන්න. exception එකක් throw වෙන නිසා exception handle කරන්න කියල try catch එකක් දාලම දාන්න.

    Code:
    try{
        con = new OleDbConnection();
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\students.mdb";
        con.Open();
        OleDbCommand command = new OleDbCommand(s, con);
        command.ExecuteNonQuery();
    }
    catch (Exception ex){
        System.Console.WriteLine(ex.Message);
    }
    දැන් getData method එක ඇතුලට දන්න කියන codes ටික දාගන්න.

    Code:
    con = new OleDbConnection();
    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\students.mdb";
    con.Open();
    Search කරල එන result එක අල්ලගන්න ඕනෙ නිසා resultset එකක් ඕනෙ වෙනව. මේක තමයි අපි search query එක එවපු තැනට ආයිත් return කරන්නෙත්.
    Code:
    OleDbCommand command = new OleDbCommand(c, con);
    OleDbDataReader reader = command.ExecuteReader();
    return reader;
    getData method එක මෙන්න මේවිදියට තියෙන්න ඕනෙ. catch දෙකක් තිබුනට අවුලක් නෑ.

    Code:
    public static OleDbDataReader getData(String c){
        try{
            con = new OleDbConnection();
            con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\students.mdb";
            con.Open();
            OleDbCommand command = new OleDbCommand(c, con);
            OleDbDataReader reader = command.ExecuteReader();
            return reader;
        }
        catch (Exception ex){
            System.Console.WriteLine(ex.Message);
        }
        return null;
    }
    සම්පූර්න code එක අන්තිමට තියෙන්නෙ ඕනෙ මෙන්න මේවිදියට. කොහෙවත් errors තියෙන්නෙ බෑ.

    24_zpse771183f.jpg

    figure 2.9

    දැන් code එක සම්පුර්නයි. මේ code එකෙත් එකම lines repeat වෙලා තියෙනව පේනවනෙ. ඒවත් නැති කරල තවත් හොද db class එකක් ගහන්න පුලුවන්. ගුරුමුෂ්ටි ටිකක් තියාගත්ත.

    Hour 03 වලින් set වෙමු
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,905
    1
    9,708
    113
    Gampaha
    Hour 03 - Creating MYSQL Database - Java Intermediate

    Hour 03 - Creating MYSQL Database - Java Intermediate

    MYSQL Server ver 5.1 නම් තියෙන්නෙ මේ settings වලින් config කරගන්න ඕනෙ. අනිත් කාරණය අපි db connection එක ලියල තියෙන්නෙ මේ localhost, port 3306 වලට. ඒ වගේම username n password විදියට දීල තියෙන්නෙත් root, 123. අපි හදන app කෙන් mysql db හරහා data retrieve කරගන්න පුලුවන් වෙන්නෙ මේ settings සමාන උනොත් විතරයි.

    Open SQLYog 8.0 + > new
    MYSQL Host Address - localhost
    Username - root
    Password - 123
    Port - 3306


    Db01_zpsd27be57f.jpg

    figure 3.0

    දැන් "student" නමින් db එකක් හදාගමු. සාමන්‍යයෙන් හොද professional aps හදන කොට එක වෙනම අතින් entity diagrams ඇදල relationships, foreign keys දාල db normalization කරල තමා mysql එකෙන් හදන්න පටන් ගන්නෙ. ඒත් දැන් අපි හදන්නෙ පොඩි app එකක් නිසා foreign keys දාගෙන joint query ගහගෙන අමාරුවේ වැටෙන්න ඕනෙ නෑ. පොඩියට වැඩේ වෙන විදියට ඕන ඕන විදියට alteration කරන්න පුලුවන් ආකාරෙට db එකක් ගහගමු.

    Right click root@localhost > Create database


    Db02_zps87ddc30b.jpg

    figure 3.1

    Database name - students (simple letters only) > create


    Db03_zps2a61f3aa.jpg

    figure 3.2

    click (+)sign > right click Tables > create table

    Db04_zps01fe3126.jpg

    figure 3.3

    මේ settings විතරක් කරන්න.
    1.field name - uname / datatype - varchar / Len - 50 / Pk - true / Not Null - true
    2.field name - pass / datatype - varchar / Len - 50

    Create Table


    Db05_zps693cd58f.jpg

    figure 3.4

    Table Name - login > ok

    Db06_zps6b48afc0.jpg

    figure 3.5

    දැන් මේවිදියට තියෙන්න ඕනෙ.
    right click login > open table >
    එක data row එකක් add කරගෙන save කරගන්න
    uname - Admin
    pass - 123
    save


    Db07_zps3373868e.jpg


    දැනට ඔය ඇති. අනිත් tables ඕන වෙලාවට ඒව ගහගමු. ඉදිරියේදී මම tables ගහන හැටි ආයිත් කියන්නෙ නෑ.අවශ්‍ය fields ටික කියනව. මේ විදියට ගහගන්න ඕනෙ. ඒ වගේම table names, table fields ඔක්කොම simple letters වලින් තමයි ලියන්න ඕනෙ. එතකොට වැරදීම වෙනව අඩුයි. මුල අකුරවත් capital කරන්න එපා. ඔක්කොම simple වලින් දාන්න.


    visual C# hour 03 වලින් හමුවෙමු.
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,905
    1
    9,708
    113
    Gampaha
    Hour 03 - Creating Access Database - C# Intermediate

    Hour 03 - Creating Access Database - C# Intermediate

    මුලින්ම Microsoft Access open කරගන්න. මේකෙ passwords මුකුත් දාන්න එපා. නිකන් db එකක් ගහගමු. welcome screen එකේ තියෙන templates වලින් blank database එක select කරගන්න. File Name විදියට students.mdb කියල දෙන්න. file location එක අනිවා browse කරල c: (drive)/temp folder එකට දෙන්න. මොකද අපි db connection එකේ path එක දීල තියෙන්නෙ database එක එතන තියෙනවයි කියල. වෙන තැනක save කලත් කමක් නෑ. ඒත් අනිවායෙන් පස්සෙ temp කියන තැනට copy කරගන්න ඕනෙ. නැත්නම් db connection එකේ path එක students.mdb file එක save කරපු තැනට වෙනස් කරන්න ඕනෙ.
    click > create


    ac01_zps9a092e83.jpg

    figure 3.7

    මුලින්ම Table එක save කරගන්න.
    right click table1 > click save


    ac02_zpsf66470e4.jpg

    figure 3.8

    table name එක විදියට login කියල දෙන්න.
    ok


    ac03_zps4c0c0848.jpg

    figure 3.9

    ඊට පස්සෙ login table එකේ fields ටික හදා ගන්න ඕනෙ.
    login(table name) right click > Design view


    ac04_zps67973bf4.jpg

    figure 3.10

    මේ settings විතරක් කරන්න.
    1.Field Name - uname / Data Type - Text / Primary key - true
    2.
    Field Name - pass / Data Type - Text

    ac05_zps9c67dff6.jpg

    figure 3.11

    දැන් Table එකට Data row එකක් Add කරගන්න ඕනෙ.
    login(table name) right click > Datasheet view

    ac06_zps3270d9b8.jpg

    figure 3.12

    එක data row එකක් add කරගෙන save කරගන්න
    uname - Admin
    pass - 123
    save


    ac07_zps054d7486.jpg


    දැනට ඔය ඇති. අනිත් tables ඕන වෙලාවට ඒව ගහගමු. ඉදිරියේදී මම tables ගහන හැටි ආයිත් කියන්නෙ නෑ.අවශ්‍ය fields ටික කියනව. මේ විදියට ගහගන්න ඕනෙ. ඒ වගේම table names, table fields ඔක්කොම simple letters වලින් තමයි ලියන්න ඕනෙ. එතකොට වැරදීම වෙනව අඩුයි. මුල අකුරවත් capital කරන්න එපා. ඔක්කොම simple වලින් දාන්න.

    Hour 04 වලින් හමුවෙමු.
     
    Last edited: