Как сделать мой класс 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());
}
}
}
Заранее спасибо:)