Как сделать мой класс databaseconnect для одновременного использования

Я создал класс под названием databaseconnect который отвечает за: подключение к базе данных, метод заполнения combobox, метод для аутентификации, метод для вставки, удаления, изменения,....

У меня проблема в том, что я могу использовать этот класс только один раз.

Например, я создал JFrame называется Login, в этом JFrame я использую "databaseconnect" для вызова его метода authentification,

В другой JFrame Я звоню "databaseconnect", чтобы заполнить комбинированный список и заполнить данные в таблице.

Но когда я используюdatabaseconnect"несколько раз программа останавливается.

Вот пример кода:

1- Login форма:

 private void LoginActionPerformed(java.awt.event.ActionEvent evt) {                                      
    con=new databaseconnect();
    String a=u.getText();
    String b=pas.getText();
    con.authentification(a,b); 
    this.setVisible(false); 
}  

2- в другом классе под названием Client:

public Client() {
  databaseconnect con= new databaseconnect();
 initComponents();

          con.opencn();
       con.fillcombo(combobox);
  }

теперь, когда я запускаю эту программу, она не открывается

3- База данных подключения: Databaseconnect учебный класс:

public class databaseconnect extends Login 
{



Admin ad=new Admin();


Client cl= new Client();


String url="jdbc:mysql://localhost:3307/bookstore";
String driver="com.mysql.jdbc.Driver";

String user="root";
String pass="root";
Connection cn;

public void opencn()
{
try
    {
        Class.forName(driver).newInstance();
        cn=DriverManager.getConnection(url,user,pass);
          System.out.println("Connected To Database");        
    }catch(Exception e)
    {
           System.out.println("Error Connecting To Database");

    }
}
public void authentification(String a, String b)
{

   String sql="SELECT * from admin_login ";
      try{

         Statement stmt=cn.createStatement();
         ResultSet rs = stmt.executeQuery(sql);


         System.out.println(sql);
       String resultat="";
   while(rs.next()) 
     {
         System.out.println(a);
       System.out.println(b);
       String uname= rs.getString("username");
       String p= rs.getString("password");

         if ((uname.equals(a)) && (p.equals(b)))
         {

         System.out.println("Login Successful"); 

       ad.setVisible(true);

         }
         else{
             System.out.println("wrong username/password");
         }

     }
        }catch(Exception e)
    {
       System.out.println(e.getMessage());     
    }


   }
 public void fillcombo(JComboBox cmb)
{ String sql= "SELECT * from client";



    try{
        opencn();
    Statement st=cn.createStatement();

    ResultSet rs=st.executeQuery(sql);
    while(rs.next())
    {



        cmb.addItem(rs.getString("Client_Name"));
    }
      }catch(SQLException e){
         System.out.println(e.getMessage());
      }
           }

         }

Заранее спасибо:)

0 ответов

Другие вопросы по тегам