Создание формы входа в систему с Java подключен к MySQL
Я создал фрейм входа в Java с помощью netbeans и подключил его к MySQL с помощью MySQL Connector/J, который был добавлен в библиотеку проектов в jar-файл Я также создал таблицу с именем входа в систему, которая включает в себя все данные для входа. Следующие коды должны разрешать вход в систему, но я продолжаю получать ошибки, как будто соединение с базой данных не было установлено.
package Lightapp;
import java.sql.* ;
import javax.swing.* ;
public class AbbeyLog extends javax.swing.JFrame
{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;
/**
* Creates new form AbbeyLog
*/
public AbbeyLog()
{
initComponents();
}
@SuppressWarnings("unchecked")
private void textuserActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
String sql = "select * from login where username = ? and password = ?";
try
{
pst = conn.prepareStatement(sql);
pst.setString(1, textuser.getText());
pst.setString(2, textpass.getText());
rs = pst.executeQuery();
if (rs.next())
{
JOptionPane.showMessageDialog(null, "Username and Password correct");
}
else
{
JOptionPane.showMessageDialog(null, "invalid username and password");
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void textuserMouseClicked(java.awt.event.MouseEvent evt)
{
// TODO add your handling code here:
}
public static void main(String args[])
{
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new AbbeyLog().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField textpass;
private javax.swing.JButton textuser;
// End of variables declaration
}
2 ответа
Вам нужно создать соединение jdbc при запуске:
//load the driver
Class.forName("com.mysql.jdbc.Driver").newInstance();
// create a connection
conn = DriverManager.getConnection("jdbc:mysql://"+hostName+":"
+ dbPort+"/"+databaseName+"?"+"user="+dbUser+"&password=" + dbPassword);
Хороший способ сделать это - создать отдельный файл с именем dbConnection для примера. Этот файл будет содержать метод подключения к БД. Обычно это будет выглядеть так:
public class DBConnection{
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
public DBConnection() {}
public void connect() {
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
con=DriverManager.getConnection("jdbc:jtds:sqlserver://adress:port;DatabaseName=dbName", "login", "passwd");
} catch (Exception e) {
e.printStackTrace();
}
}
Тогда в вашем основном классе вы делаете:
dbConnection db=new dbConnection();
db.connect;