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
figure 2.0
Class Name එක විදියට db දාන්න. Finish.
Figure 2.1
හරි දැන් library එක දාගමු
Right Click Libraries > Add JAR/Folder > Open SQL Libary jar file (see figure 2.2 n 2.3)
figure 2.2
db class n SQL db library එක Add කිරීමෙන් අනතුරුව.
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 එක හදාගන්න.
දැන් insert, update, delete queries වලට එක method එකකුත් search query එකට තව method එකකුත් ලියාගමු. අපිට හැම query එකක්ම මෙතන ලියන්න බෑ. මොකද එක එක තැන්වලදි යවන query වර්ග වෙනස් වෙන නිසා. ඒ නිසා ඔක්කොම queries වලට හරියන විදියට පැරා වල String එකක් අල්ලගන්න පුලුවන් විදියට method එක ලියාගන්න.
for insert, update, delete queries. මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙන්නෙ නැති නිසාත්, method එක හරහා data db එකට යවන නිසා method එක මේ විදියට හදාගන්න.
for search query මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙනව. මොකද අපි Search කරන result එක නැවත අපි search කරපු තැනට අරගන්න ඕනෙ. ඒ නිසා return කරගන්න පුලුවන් විදියෙ method එකක් හදාගන්න.
හරි දැන් setData method එක ඇතුලට දන්න කියන codes ටික දාගන්න. cast කලේ නැති උනාට කමක් නෑ. IDE එකෙන් cast කරන්න කියල පෙන්නල IDE එකෙන්ම cast කරල දානව.
හරි දැන් exception එකක් throw වෙන නිසා exception handle කරන්න කියල IDE එකෙන් කියනව. ඒ නිසා IDE එකෙන් දෙන Option වලින් Surround block with try catch කියන option එක තෝරන්න. එතකොට method එක මෙන්න මේවිදියට තියෙන්න ඕනෙ. catch දෙකක් තිබුනට අවුලක් නෑ.
දැන් getData method එක ඇතුලට දන්න කියන codes ටික දාගන්න. cast කලේ නැති උනාට කමක් නෑ. IDE එකෙන් cast කරන්න කියල පෙන්නල IDE එකෙන්ම cast කරල දානව.
Search කරල එන result එක අල්ලගන්න ඕනෙ නිසා resultset එකක් ඕනෙ වෙනව. මේක තමයි අපි search query එක එවපු තැනට ආයිත් return කරන්නෙත්.
හරි දැන් exception එකක් throw වෙන නිසා exception handle කරන්න කියල IDE එකෙන් කියනව. ඒ නිසා IDE එකෙන් දෙන Option වලින් Surround block with try catch කියන option එක තෝරන්න. එතකොට method එක මෙන්න මේවිදියට තියෙන්න ඕනෙ. catch දෙකක් තිබුනට අවුලක් නෑ.
දැන් සම්පූර්න code එක ලියාගෙන ඉවරයි. code එකේ කිසිම තැනක් රතුපාටින් තියෙන්නෙ බෑ. සමහරවිට imports වල අවුලක් තියෙන්න පුලුවන් ඒක ctrl+shift+I keys press කරල imports fix කරගන්න. මෙන්න මේටික auto import වෙලා තියෙන්නෙ ඕනෙ.
සම්පූර්න code එක අන්තිමට තියෙන්නෙ ඕනෙ මෙන්න මේවිදියට. කොහෙවත් errors තියෙන්නෙ බෑ.
figure 2.4
දැන් code එක සම්පුර්නයි. මේ code එකෙත් එකම lines repeat වෙලා තියෙනව පේනවනෙ. ඒවත් නැති කරල තවත් හොද db class එකක් ගහන්න පුලුවන්. ගුරුමුෂ්ටි ටිකක් තියාගත්ත.
Visual C# වලින් db එක ගහන හැටි ඊලගට බලමු.
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
figure 2.0
Class Name එක විදියට db දාන්න. Finish.
Figure 2.1
හරි දැන් library එක දාගමු
Right Click Libraries > Add JAR/Folder > Open SQL Libary jar file (see figure 2.2 n 2.3)
figure 2.2
db class n SQL db library එක Add කිරීමෙන් අනතුරුව.
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;
for insert, update, delete queries. මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙන්නෙ නැති නිසාත්, method එක හරහා data db එකට යවන නිසා method එක මේ විදියට හදාගන්න.
Code:
public static void setData(String s) {
}
Code:
public static ResultSet getdata(String c) {
return null;
}
Code:
Class.forName("com.mysql.jdbc.Driver");
con = (Connection) DriverManager.getConnection("jdbc:mysql:///students", "root", "123");
con.createStatement().executeUpdate(s);
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);
}
}
Code:
Class.forName("com.mysql.jdbc.Driver");
con = (Connection) DriverManager.getConnection("jdbc:mysql:///students", "root", "123");
Code:
ResultSet rs = con.createStatement().executeQuery(c);
return rs;
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:
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;
figure 2.4
දැන් code එක සම්පුර්නයි. මේ code එකෙත් එකම lines repeat වෙලා තියෙනව පේනවනෙ. ඒවත් නැති කරල තවත් හොද db class එකක් ගහන්න පුලුවන්. ගුරුමුෂ්ටි ටිකක් තියාගත්ත.
Visual C# වලින් db එක ගහන හැටි ඊලගට බලමු.


