В настоящее время я студент первого курса, занимаюсь разработкой программного обеспечения, и столкнулся с некоторой проблемой при разработке проекта для университета. В настоящее время я работаю над проектом netbeans, который позволяет пользователям входить в систему и получать информацию из базы данных mysql. В настоящее время у меня есть отдельный класс для обработки данных, где я написал метод подключения, см. Ниже. Однако, когда я создаю новый объект обработчика данных в своем классе Jframe и пытаюсь вызвать метод соединения, он не позволяет мне использовать операторы вставки (см. Ниже), которые я запрограммировал за кнопками (для получения информации из полей txtfields) , Однако, когда я перемещаю метод соединения в класс Jframe, он работает отлично. Мне было интересно, пропускаю ли я что-то действительно очевидное или просто ужасный дизайн.
Спасибо за вашу поддержку!
private void connection(){
//from data handler class
try{
String mysqlUrl = "jdbc:mysql://localhost/test";
String username = "root";
String password = "";
con = DriverManager.getConnection(mysqlUrl, username, password);
}
catch(Exception e){
System.err.println("Got an exception");
System.err.println(e.getMessage());
}
}
}
private void btnRegisterActionPerformed(java.awt.event.ActionEvent evt) {
try{
Datahandler test = new Datahandler();
test.connection();
//create my mysql database connection
String query = "INSERT INTO User(customerStatus ,title, firstname, lastname, contactNo, email, username, password)"
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
pst = con.prepareStatement(query);
pst.setString(1,"Beginner");
pst.setString(2,cmdGender.getSelectedItem().toString());
pst.setString(3,txtFirstname.getText());
pst.setString(4,txtLastname.getText());
pst.setString(5,txtPhone.getText());
pst.setString(6,txtEmail.getText());
pst.setString(7,txtUsername.getText());
pst.setString(8,txtPassword.getText());
pst.execute();
/* inserts the values username and password into a separate table in the database and
makes use of the to ensure that the login is sercure(I will possibly make a change to
how the structure of the databases work since there is an security issue here
*/
String query2 = "INSERT INTO Login(username, password)"
+ "VALUES (?, ?)";
pst = con.prepareStatement(query2);
pst.setString(1,txtUsername.getText());
pst.setString(2,txtPassword.getText());
pst.execute();
JOptionPane.showMessageDialog(null, "Registration completed!");
//reset registration boxes into empty text
txtFirstname.setText("");
txtLastname.setText("");
txtPhone.setText("");
txtEmail.setText("");
txtUsername.setText("");
txtPassword.setText("");
}
catch (Exception e){
System.err.println("Got an exception");
System.err.println(e.getMessage());
JOptionPane.showMessageDialog(null, "Something went wrong try to register again");
}
}