Monday, August 19, 2019

ஜாவாவில் லாக் இன் பக்கம்.



பொதுவாக ஒரு பயன்பாட்டில் முதலாவதாக பயனரின் பெயரும் அவருடைய கடவுச்சொல்லும் பெறப்பட்டு அவை பொருந்தியிருந்தாலே அடுத்த பக்கத்திற்கு செல்லும் படி அமைக்கப்பட்டிருக்கும்.
இந்த கட்டுரையில் ஜாவாவில் எவ்வாறு JDBC பயன்படுத்தி நாம் கொடுக்கும் பெயர் மற்றும் கடவுச் சொல் தகவல் தளத்தில் உள்ளதா என் எவ்வாறு செய்வது என்று பார்ப்போம்.
முதலில் Mysql பயன்படுத்தி டேட்டா பேஸில் என்னவெல்லாம் செய்ய வேண்டும் எனப் பார்ப்போம்.
User என்ற பெயரில் தகவல் தளம்(data base) உருவாக்கவும். தகவல் தளத்திற்கு நீங்கள் விரும்பிய  பெயரைக் கொடுத்துக் கொள்ளலாம்.
பிறகு login என்ற் பெயரில் ஒரு டேபிளை உருவாக்கவும்.
அதில் id என்ற பெயர், டேட்டா டைப் int , பிரைமரி கீ, ஆட்டோ இங்கிரிமெண்ட் என்ற் ஒரு காலம் உருவாக்கவும். அடுத்து uname, pass என்று இரு காலம் உருவாக்கவும். இவை இரண்டின் டேட்டா டைப்பும் varchar ஆகவும் அதன் அளவு 50 ஆகவும் இருக்கட்டும்.
இப்பொழுது அதன் இன்புட் கொடுக்கவும்.
உதாரணமாக இரண்டு ரோ அமைத்துள்ளேன்.
1 , muthu, abc
2, karthi, xyz
அதாவது muthu என்ற பயனருக்கு abc என்பதை கடவுச் சொல்லாகவும்(password) karthi என்ற பயனருக்கு xyz என்பது கடவுச்சொல்லாகவும் டேபிளில் சேமிக்கப்பட்டுள்ளது.
இப்பொழுது netbeans என்பதை இயக்கவும். முதலில் loginApp என்ற பெயரில் பிராஜெக்ட் உருவாக்கவும். இடது புறம் உள்ள பிராஜெக்ட் என்ற விண்டோவில் loginApp என்பதில் source packages என்பதை வலது கிளிக் செய்து புதிதாக loginForm என்ற JFrame ஒன்றை இணைக்கவும்.
இதில் கீழே உள்ள படத்தில் உள்ளது போல் டிசைன் செய்யவும்.
இதில் முதலில் உள்ள டெக்ஸ்ட் ஃபீல்டில் வலது கிளிக் செய்து  variable name என்பதில் tfuser என்றும் , இரண்டாவது உள்ள பாஸ்வேர்டு ஃபீல்டில் வலது கிளிக் செய்து வேரியபிள் பெயராக tfpass என்றும் கொடுக்கவும்.
பட்டனின் டெக்ஸ்ட் ஆக submit என்றும் அதன் வேரியபிள் பெயராக btnSubmit என்றும் கொடுக்கவும்.
இப்பொழுது mysql-connector.java  என்பதை இணையத்தில் இருந்து டவுன்லோட் செய்யவும். பிறகு பிராஜெக்ட் விண்டோவில் loginApp என்பதில் libraries என்பதை வலது கிளிக் செய்து add jar file என்பதை கிளிக் செய்து டவுன் லோட் செய்யப்பட்டுள்ள கனக்டரை சேர்த்துக் கொள்ளவும்.

இப்பொழுது சோர்ஸ் என்ற டேப்பை கிளிக் செய்து கிளாஸிற்க்குள் பின் வருமாறு டைப் செய்யவும்.
Connection con;
   PreparedStatement stmt;
    ResultSet rs;
பிறகு loginform() என்ற கன்ஸ்ட்ரக்டர் ஆனது பின் வருமாறு இருக்கட்டும்.
  public loginForm() {
        initComponents();
       
        try
        {
           Class.forName("com.mysql.jdbc.Driver"); 
 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/user","root","");  
   JOptionPane.showMessageDialog(null,"connection success");
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
    }

அதாவது DriverManager.getConnection("jdbc:mysql://localhost:3306/user","root","");   என்பதில் mysql  போர்ட்  ஆக 3306 என்பதுவும் , டேட்டாபேஸ் பெயராக user என்பதையும் , பயனர் பெயராக root என்பதையும் மற்றும் டிஃபால்ட் கடவுச்சொல் ஏதும் இல்லாததால் வெற்று மேற்கோள் கொடுக்கப்பட்டுள்ளது.
மேற்கண்ட நிரலாக்க வரிகள் try மற்றும் catch பகுதிக்குள் கொடுக்கப்பட்டுள்ளது. கனக்சனில் தவறுகள் ஏற்பட்டால் catch பகுதி இயக்கப்பட்டு பிழைச் செய்தி காட்டப்படும்.
பிறகு submit பட்டனை வலது கிளிக் செய்து events->Actions->actionPerformed
என்பதை கிளிக் செய்யவும்.
இப்பொழுது actionPerformed என்ற ஈவண்ட் பின் வருமாறு இருக்கட்டும்.
  private void btnSubmitActionPerformed(java.awt.event.ActionEvent evt) {                                         
      try
      {
        stmt=con.prepareStatement("select * from login where uname=? and pass=? "); 
        stmt.setString(1, tfuser.getText());
        stmt.setString(2, tfpass.getText());
        rs=stmt.executeQuery();
        if(rs.next())
        {
            JOptionPane.showMessageDialog(null, "login success");
           
        }
        else
        {
           JOptionPane.showMessageDialog(null, "user name or password invalid");
        }
      }
      catch(Exception e)
    {
    JOptionPane.showMessageDialog(null, e.getMessage());
    }
    }   
பிராஜெக்டில் loginform.java என்பதை வலது கிளிக் செய்து shift+f6  கீயை அழுத்தவும்.பின் வருமாறு விண்டோ வரும்.                        
நாம் கொடுத்த பயனர் பெயர் மற்றும் கடவுச் சொல் பெறப்பட்டு அந்த குறிப்பிட்ட தகவல் ஆனது டேட்டா பேஸில் உள்ள தகவல் உடன் பொருந்தியிருந்தால் மட்டுமே ஒரு ரோ பெறப்படும். rs என்ற ரிசல்ட் செட்டில் டேட்டா இருந்தால் அதாவது rs.next() என்பது true ஆக இருந்தால்
Login success எனவும் இல்லையெனில் user name or password invalid எனவும் மெஸ்ஸேஜ் காட்டப்படும்.
-நன்றி.
முத்து கார்த்திகேயன்,மதுரை.


ads Udanz

No comments:

Post a Comment