gpt4 book ai didi

java GUI简单登录后端mysql

转载 作者:行者123 更新时间:2023-11-30 09:35:15 27 4
gpt4 key购买 nike

我正在尝试创建一个 GUI 程序,简单的 LOGIN 维护。我有 4 个图形用户界面组件,即:jlabel、jtextfield、jpasswordfield 和 jbutton。到目前为止,这是我的代码:

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.*;


public class BankGui extends JApplet implements ActionListener{

// GUI components
JLabel lblUser, lblPass;
JTextField txtUser;
JPasswordField txtPass;
JButton btnOk, btnClear;

// connections to MYSQL
private static Connection connection = null;
private static Statement statement = null;
private static ResultSet resultSet = null;
//public static Scanner in = new Scanner(System.in);

public void init(){
Container c = getContentPane();
c.setLayout( new FlowLayout() );

lblUser = new JLabel( "Username: " );
c.add( lblUser );
txtUser = new JTextField( 10 );
c.add( txtUser );

lblPass = new JLabel( "Password:" );
c.add( lblPass );
txtPass = new JPasswordField( 10 );
c.add( txtPass );

btnOk = new JButton( "OK" );
btnOk.addActionListener( this );
c.add( btnOk );
}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if( btnOk ){

}
}

public void connect(){

try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/USERS", "root", "root");
statement = connection.createStatement();
resultSet = statement
.executeQuery("SELECT lname, fname FROM employees");

} catch (Exception e) {
e.printStackTrace();
}

}


}

但是我卡在了 actionperformed 方法和 connect 方法中。我不知道该放什么来验证登录的人是否是授权用户。

最佳答案

您不能执行 Applet 的SQL 操作,请将其更改为Java 应用程序(扩展Frame/JFrame)。阅读这篇文章 - What Applets Can and Cannot Do .

您必须编写带有 WHERE 子句的 SELECT 语句。

String sql="SELECT userName FROM employees WHERE UserName=? and Password=?";

编辑:

static block 中注册JDBC驱动

 static {
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception ex) {
System.err.println(ex);
}
}

并在actionPerformed方法中编写代码:

PreparedStatement stmt=null;
boolean isFound=false;
try{
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/USERS", "root", "root");
String sql="SELECT userName FROM employees WHERE UserName=? and Password=?";
stmt=connection.prepareStatement(sql);
stmt.setString(1,txtUser.getText());
stmt.setString(2,txtPass.getPassword());
resultSet=stmt.executeQuery();
if(resultSet.next()){
isFound=true;
}
//
}catch(SQLException ex){
System.err.println(ex);
}finally{
if(stmt!=null){
try{
stmt.close();
}catch(Exception ex) { /* */ }
}
if(connection!=null){
try{
connection.close();
}catch(Exception ex) { /* */ }
}
}

关于java GUI简单登录后端mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11446128/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com