Wednesday, October 6, 2010

Java සිංහලෙන් 07 >> ජාවා කොහොමද database එකකට connect කරන්නේ..

පොස්ට් එක ලියන්න පරක්කු උනේ වැඩ ටිකක් තිබුනු හින්දා. හෙටට තිබුනු(7 වෙනිදට) අපේ පැදුරු සාජ්ජේ 14 වෙනිදට කල්ගියා. එක නිසා ටිකක් විතර ලිහිල් විමක්. හරි අද ලියන්නේ කොහොමද ජාවයි databaseයි connect කරන්නේ කියන කාරණාව ගැන. මේක ගොඩ දා ගත්තොත් බඩුම තමයි. මොකද ජාවා වල ගොඩක් වැඩ කරන්න එතකොට පුළුවන් වෙනවා (මම අදහස් කලේ System එකක් හැදිම සම්බන්දව).Right කතා ඇති. වැඩේට බහිමු........

මේකට ජාවා වල jar file(mysql-connector-java-5.0.7-bin.jar) එකක් ඕන කරනවා. සරළවම jar file එකක් කියන්නේ java executable file එකක් කියන එකටයි. මුළින්ම කරන්න තියෙන්නේ හා හා පුරා කියලා අර jar file එක බා ගන්න තමයි ඉතින්. පහත link එකෙන් ඒ වැඩේ ලේසියෙන් කරගන්න පුළුවන්.

download mysql-connector-java-5.0.7-bin.jar


මේ බා ගත්ත jar file එක netbeans වල library එකට දා ගන්න ඕන. ඒකට කරන්න තියෙන්නේ Libraries වල right click කරලා Add jar folder කියන එක click කරන්න.


එතකොට ඒ Add JAR/Folder වින්ඩොව open වෙනවා.එතනට add කරගත්තනම් වැඩේ හරි.


මෙතනට jar file එක add කරගන්න. හරි............

දැන් කරන්න තියෙන්නේ code කරන්න තමයි ඉතින්.මෙතනදි කියන්න දෙයක් තියනවා. database සම්බන්ද කරන එක ලියන්න පුලුවන් ක්‍රම දෙකක් තියනවා. එකක් තමයි අපි සම්බන්ද කරන අවස්ථාවේ අදාල code එක ලිවිම. අනිත් එක තමයි වෙනම class එකක code එක ලියලා අවශ්‍ය අවස්ථාවේදි call කිරිම.මෙකෙන් වඩාත්ම උචිත අකාරයනම් දෙවෙනි එක තමයි. මොකද අපිට code එකේ මොකක් හරි වෙනසක් කරන්න උනොත් වෙනස් කරන්න ඕන එක තැනකදි විතරයි. පළවෙනි ක්‍රමේ අනුගමනය කල අයට ඉතින් sorryම තමා.

හරි ඔන්න මම ඉස්සෙල්ලාම class එකක් ගන්නවා Source Packages උඩ right click කරලා ගිහින්.


එක නම් කරමු db කියලා.


දැන් ඔන්නdb class එක පෙන්නන්න ගන්නවා.එතන මේ code ටික ගැහුවනම් හරි.

private static Connection con;
public static Connection getMyConnection() throws Exception{
Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testDB", "root", "");

return con;

}

ඕක තමයි code එක. මෙහිදි මම getMyConnection() කියලා method එකක් හදාගෙන එකේ ඇතුලේ තමයි code කලේ.

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testDB", "root", "");
මේ code එකෙන් තමයි connection එකේ path එක නැත්නම් පාර කියලා දෙන්නේ. මුලින්ම database එකෙ path එක දෙන්න ඕන(අන්තිමට තියෙන්නේ database එකේ නම > testDB). ඉටපස්සේ username එකේ එක(root). ඉටත්පස්සේ password එක(password නැ).

අහ් තව කියන්න දෙයක් තියනවා. code එක copy paste කරා නම් public class db කියන එකට උඩින්

import java.sql.Connection;
import java.sql.DriverManager;

හෝ

import java.sql.*;

කියලා copy කරගන්න ඕන. නැතුව අපි type කලා නම් ඒ කළින් හඳුන්වා දී තියන class නැත්නම් predefine class ස්වයංක්‍රියවම netbeans වලින් ගන්නවා.(ctrl + space එකවර එබු විටත් අදාළ code පෙන්නනවා. මෙතනදි තොරන්න ඕන Connection sql කියන එක මිසක් Connection mysql කියන එක නෙවෙයි).දැන් connection එකනම් හදලා ඉවරයි.

දැන් අපි පොඩි උදාහරණයක් කරමු වැඩේ හරිද කියලා බලන්න. jTextfield දෙකකුයි jLabel දෙකකුයි Jbutton එකකුයි ඇදලා jFrame එකට දාගන්න(මෙව කරන හැටි කලින් පොස්ට් වල දාලා තියෙන්නේ. ඕනනම් මෙතනින් යන්න ). jLabel දෙක නම් කරමු Emp IDකියලයි Emp Name කියලා. Jbutton එක නම් කරමුකො Save කියලා. run කරහම පෙන්නනේ මෙන්න මේ වගේ.


දැන් database එකක් හදා ගන්න ඔනා testDB කියලා. ඉටපස්සේ employ කියලා table එකක් හදාගන්නත් ඔන(මම EmpId කියන එක primary key ලෙස භාවිතා කරනවා). එකට ක්‍රම දෙකක් තියනවා. එකක් phpMyAdmin ගිහින් GUI ලෙස හදාගැනිම. අනිත් එක mySql Console එකේ code ලියලා හදාගැනිම.

java code එක ලියන්නේ save button එක ඇතුලේ. මෙන්න code එක.

String EmpID = jTextField1.getText();
String EmpName = jTextField2.getText();

try {

Connection con = db.getMyConnection();
String sql ="insert into employ() values('"+ EmpID +"','"+ EmpName +"')";
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);

}
catch (Exception e) {

e.printStackTrace();
}

මුලින්ම jTextfield දෙකේ තියන values EmpID, EmpName කියන variable දෙකට අරගන්නවා.

String EmpID = jTextField1.getText();
String EmpName = jTextField2.getText();

ඉටපස්සේ connaection එක හදාගන්නවා.
Connection con = db.getMyConnection();

ඉටපස්සේ sql query එක ලියලා එක ක්‍රියාත්මක කරනවා.
String sql ="insert into employ() values('"+ EmpID +"','"+ EmpName +"')";
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);

catch (Exception e) {
e.printStackTrace();
}

මේ code එකෙන් කරන්නේ මේ program එක run වෙනකොට තියන errors print වෙලා පෙන්නන එක. අපිට ඔනිනම් එක dialog box එකක් විදියටත් පෙන්නන්න පුළුවන්.
import javax.swing.JOptionPane; //(මේක උඩින්ම දාන්න ඕන.)
JOptionPane.showMessageDialog(null,e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);

code කරද්දි අතින් කරනවානම් හොදයි. මොකද connection කරද්දි බොහොදුරට තියෙන්නේ මේ code ටිකම තමයි. ඔය sql query එක තමයි සමහරක් විට වෙනස් වෙන්නේ. අනික් කරණය තමයි සමහරක් code ලියද්දි එවට අදාළ predefine class ස්වයංක්‍රියවම netbeans මඟින් ලියාගන්නවා.

ඔයාලා code copy paste කරලා ගැහුවම් මේ code(import කල class ටික) ටිකත් දාන්න අමතක කරන්න එපා.

import java.sql.Connection;
import java.sql.Statement;

එහෙනම් අපි නවතිනවා. අඩුපාඩු තියනවනම්, මීට වඩා හොද ක්‍රම තියනවනම් , ප්‍රශ්න තියනවනම් comment එකක් දාන්නත් අමතක කරන්න එපා.

7 comments:

  1. ela ela machan api balanawa digatama liyanna

    ReplyDelete
  2. ඔහොම යං ඔහොම යං. මම නම් මේවා ප්‍රින්ටි අවුට් අරගෙන තියාගන්නවා. තෑන්කස්.

    ReplyDelete
  3. සම්පූර්ණ පෝස්ට් එකක්... එල කිරි යාළුවා... තව පෝස්ට් දාන්න. ජය වේවා.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. thanks මචන්....
    …මගේ වැඩේ ගොඩේ ගොඩ ....

    ReplyDelete

Creative Commons License
y genaration by kalpa prasad gamage is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Based on a work at ygenkalpa.blogspot.com.
Permissions beyond the scope of this license may be available at http://ygenkalpa.blogspot.com/2010/09/java-06-jcombo-box.html.