2017-02-06 1 views
0

i eine Klasse Anruf Mitglied habe ich einen Methodenaufruf „public Mitglied searchByName (String key)“ in membermanager Klasse Ich habe eine andere JFrame die eine Suchtaste hat (Typ Mausklick)Java Form Suchmethode nicht funktioniert - (kann das member_id aus der Datenbank Mitgliedertabelle nicht fein)

in meinem Mitglieder-Datenbank gibt es ein Mitglied Anruf 123 (member_id)/Primärschlüssel

, wenn ich 123 ein und aus Java UI suchen sie sagt: „Kein Mitglied gefunden“

überprüfen Sie bitte meine Codierung und helfen Sie mir, dieses Problem zu beheben, danke Ihnen allen! :) database (lmsjason- table member)

package UIDesignLMS; 


public class member { 

    private String m_memberid; 
    private String m_membername; 
    private String m_dob; 
    private String m_address; 
    private String m_contact; 

    public member(){ 


    } 

    public member(String memberid, String membername, String dob, String address, String contact){ 
     m_memberid = memberid; 
     m_membername = membername; 
     m_dob = dob; 
     m_address = address; 
     m_contact = contact; 

    } 
    public void setId(String memberid){ 
     m_memberid = memberid; 
    } 
    public String getId(){ 
     return m_memberid; 
    } 
    public void setName(String membername){ 
     m_membername = membername; 
    } 
    public String getName(){ 
     return m_membername; 
    } 
    public void setDob(String dob){ 
     m_dob = dob; 
    } 
    public String getDob(){ 
     return m_dob; 
    } 
    public void setAddress(String address){ 
     m_address = address; 
    } 
    public String getAddress(){ 
     return m_address; 
    } 
    public void setContact(String contact){ 
     m_membername = contact; 
    } 
    public String getContact(){ 
     return m_contact; 
    } 



} 
package UIDesignLMS; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class membermanager { 

    Connection conn = null; 
    PreparedStatement pst = null; 
    ResultSet re = null; 

    private ViewMemberUI view; 

    public membermanager() { 
     //load the database driver 
     conn = MysqlConnect.ConnectDB(); 
    } 



    public member searchByName(String key) { 
     Connection conn; 

     member Member = new member(); 
     try { 
      conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lmsjason","root",""); 
      Statement stmt = conn.createStatement(); 
      ResultSet rs = stmt.executeQuery("Select * from member where Member_ID like '%\" + key + \"%' "); 
      while (rs.next()) { 

       Member = new member(rs.getString("Member_ID"), rs.getString("Name"),rs.getString("DOB"),rs.getString("Address"),rs.getString("Contact")); 

      } 
      conn.close(); 
     } catch (SQLException ex) { 
      System.out.println(ex); 
     } 

     return Member; 
    } 
    } 
private void jLabel7MouseClicked(java.awt.event.MouseEvent evt) {          
     // Search 
     if ("".equals(textmemberid.getText())) { 
      JOptionPane.showMessageDialog(null,"Member ID cannot be empty"); 

     } else { 
      member Member = manager.searchByName(textmemberid.getText()); 
      if (Member.getId() == null) { 
       JOptionPane.showMessageDialog(null,"No Member found!"); 
      } else { 
       textname.setText(Member.getName()); 
       textdob.setText(Member.getDob()); 
       textaddress.setText(Member.getAddress()); 
       textcontact.setText(Member.getContact()); 


      } 

     } 
    }  

/* 
* Data Base Connection 
*/ 
package UIDesignLMS; 
import java.sql.*; 
import javax.swing.*; 


public class MysqlConnect { 
    Connection conn=null; 
    public static Connection ConnectDB(){ 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/lmsjason","root",""); 
      //JOptionPane.showMessageDialog(null, "Connected to database"); 
      return conn; 
     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, e); 
      return null; 
     } 
    } 
} 
+0

Stack Overflow ist kein Ersatz für die Verwendung eines Debuggers. – David

+2

Du entkommst den Anführungszeichen '... '% \" + key + "%" ... 'es sollte' ...'% "+ key +"% '... 'aber du bist besser Verwenden Sie eine 'PreparedStatement' anstelle einer String-Verkettung. – Titus

+0

Dank bro funktioniert es jetzt :) yeah ich muss mehr über Preparestatment mehr –

Antwort

0

Warum haben Sie einfach nicht PrepapredStatement es ist hilfreicher und sicheres Beispiel:

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lmsjason", "root", ""); 
PreparedStatement stm = conn.prepareStatement("Select * from member where Member_ID like ? "); 
stm.setString(1, key); 
ResultSet rs = stm.executeQuery(); 
while (rs.next()) { 
    Member = new member(rs.getString("Member_ID"), rs.getString("Name"), 
      rs.getString("DOB"), rs.getString("Address"), rs.getString("Contact")); 

} 

Sie müssen keine Anführungszeichen gesetzt '' mit PrepapredStatement

Sie können einen Blick aufwerfen

+0

Dank Bruder Titus Antwort funktioniert und ja ich werde mehr über Preparestatement lernen –

+0

Sie sind herzlich willkommen @ TECKid vergessen Sie nicht, die Antwort zu akzeptieren –

Verwandte Themen