Heim  >  Artikel  >  Datenbank  >  So verwenden Sie Java- und MySQL-Datenbanken zur Implementierung der Registrierung und Anmeldung

So verwenden Sie Java- und MySQL-Datenbanken zur Implementierung der Registrierung und Anmeldung

PHPz
PHPznach vorne
2023-06-01 08:49:051644Durchsuche

Designideen

1. Datenbankdesign – nachdem Sie die Bedürfnisse der Benutzer verstanden haben, entwerfen Sie die Datenbank entsprechend diesen Bedürfnissen der Benutzer.

2. Datenmodell – es kapselt die gesamte Datenbanktabellenstruktur in einer Klasse.

3. Datenverarbeitungs-Tool-Klasse – Entwerfen Sie eine Tool-Klasse zur Verarbeitung von Daten gemäß den Anforderungen des Datenmodells.

4. Ansichtsanzeige – Bieten Sie Benutzern endlich eine interaktive und praktische Ansichtsoberfläche.

Detailliertes Design

1. Erstellen Sie zunächst eine Tabelle in der Datenbank.

2. Entwickeln Sie entsprechende Datenmodelle basierend auf den Geschäftsanforderungen. Dieses Design konzentriert sich hauptsächlich auf die Anmeldung und Registrierung, daher werden zwei Datenmodelle entworfen.

(1) Registrierungsmodell

package Chapter_14.Part_8;

public class Register {	//注册模型
    String id;
    String password;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

(2) Anmeldemodell

package Chapter_14.Part_8;

public class Login {	//登录模型
    String id;
    String password;
    boolean loginSuccess = false;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public boolean isLoginSuccess() {
        return loginSuccess;
    }

    public void setLoginSuccess(boolean loginSuccess) {
        this.loginSuccess = loginSuccess;
    }
}

3. Entwerfen Sie auf der Grundlage der beiden oben entworfenen Datenmodelle jeweils entsprechende Datenverarbeitungstoolklassen.

(1) Registrieren Sie die Modellverarbeitungs-Tool-Klasse

package Chapter_14.Part_8;

import Chapter_14.GetDatabaseConnection;

import javax.swing.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class registerHandle {	//注册数据处理者
    Connection connection = null;
    PreparedStatement presql;   //预处理对象
    String sql;

    public registerHandle() {
        connection = GetDatabaseConnection.connectDB("book","root","");
    }
    public void writeRegister(Register register){
        int ok = 0;
        try {
            sql = "insert into register value (?,?)";    //预处理
            presql = connection.prepareStatement(sql);
            presql.setString(1,register.getId());
            presql.setString(2,register.getPassword());
            ok = presql.executeUpdate();    //成功插入式返回1
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null,"ID不能重复","警告",JOptionPane.WARNING_MESSAGE);

        }
        if (ok!=0){
            JOptionPane.showMessageDialog(null,"注册成功","恭喜",JOptionPane.WARNING_MESSAGE);
        }
    }
}

(2) Melden Sie sich bei der Modellverarbeitungs-Tool-Klasse an

package Chapter_14.Part_8;

import Chapter_14.GetDatabaseConnection;

import javax.swing.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class loginHandle {
    Connection connection = null;
    PreparedStatement presql;
    String sql;
    ResultSet resultSet;
    boolean loginSuccess;

    public loginHandle() {
        connection = GetDatabaseConnection.connectDB("book", "root", "");
    }

    public void readLogin(Login login) {
        try {
            sql = "select * from register where ID = ? and password = ? ";  //主要用and
            presql = connection.prepareStatement(sql);
            presql.setString(1, login.getId());
            presql.setString(2, login.getPassword());
            resultSet = presql.executeQuery();
            if (resultSet.next()) {
                login.setLoginSuccess(true);
                JOptionPane.showMessageDialog(null, "登录成功", "恭喜", JOptionPane.WARNING_MESSAGE);
            } else {
                login.setLoginSuccess(false);
                JOptionPane.showMessageDialog(null, "登录失败", "提示", JOptionPane.WARNING_MESSAGE);
            }
            connection.close();
            loginSuccess = login.isLoginSuccess();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
}

4. Sie können eine Testklasse entwerfen, um zu überprüfen, ob das Programm normal bestehen kann. Wenn die Prüfung erfolgreich ist, können Sie mit dem Entwerfen der Ansicht beginnen.

(1) Design der Registrierungsansicht

package Chapter_14.Part_8;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class registerPanel extends JPanel implements ActionListener {
    Register register;
    registerHandle registerHandle;
    JTextField jTextFieldID;
    JTextField jTextFieldPassword;
    JButton jregister;

    public registerPanel() {
        //setLayout(new FlowLayout());
        //setVisible(true);
        init();
        validate();
    }

    void init() {
        jTextFieldID = new JTextField(12);
        add(new JLabel("ID:"));
        add(jTextFieldID);
        jTextFieldPassword = new JTextField(12);
        jTextFieldPassword.addActionListener(this);
        add(new JLabel("PASSWORD:"));
        add(jTextFieldPassword);
        jregister = new JButton("Register");
        jregister.addActionListener(this);
        add(jregister);


    }


    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        register = new Register();
        register.setId(jTextFieldID.getText());
        register.setPassword(jTextFieldPassword.getText());
        registerHandle = new registerHandle();
        registerHandle.writeRegister(register);
        jTextFieldPassword.setText(null);
    }
}

(2) Design der Anmeldeansicht

package Chapter_14.Part_8;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class loginPanel extends JPanel implements ActionListener {
    Login login;
    loginHandle loginHandle;
    JTextField jTextFieldID;
    JPasswordField jTextFieldPassword;
    JButton jLogin;

    public loginPanel() {
        //setLayout(new FlowLayout());
        //setVisible(true);
        init();
        validate();
    }

    void init() {
        jTextFieldID = new JTextField(12);
        add(new JLabel("ID:"));
        add(jTextFieldID);
        jTextFieldPassword = new JPasswordField(12);
        jTextFieldPassword.addActionListener(this);
        add(new JLabel("PASSWORD:"));
        add(jTextFieldPassword);
        jLogin = new JButton("Login");
        jLogin.addActionListener(this);
        add(jLogin);
    }

    public boolean isLoignSuccess() {
        return loginHandle.loginSuccess;
    }

    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        login = new Login();
        login.setId(jTextFieldID.getText());
        char[] p = jTextFieldPassword.getPassword();
        login.setPassword(new String(p));
        loginHandle = new loginHandle();
        loginHandle.readLogin(login);
    }

5 Kombinieren Sie die beiden oben genannten Ansichtsklassen zu einer Klasse, um die spätere Wartung und Änderung zu erleichtern.

package Chapter_14.Part_8;

import javax.swing.*;
import java.awt.*;

public class combinePanel extends JPanel {
    JTabbedPane jTabbedPane;
    registerPanel registerPanel;
    loginPanel loginPanel;

    public combinePanel() {
        //setLayout(new BorderLayout());    不设置时不全框显示
        jTabbedPane = new JTabbedPane();
        registerPanel = new registerPanel();
        loginPanel = new loginPanel();
        jTabbedPane.addTab("注册界面", registerPanel);
        jTabbedPane.addTab("登录界面", loginPanel);
        add(jTabbedPane, BorderLayout.CENTER);
        jTabbedPane.validate();
    }

    public boolean isLoginSuccess() {
        return loginPanel.isLoignSuccess();
    }
}

6. Alles ist entworfen und betriebsbereit. Legen Sie den Haupteingang eines Programms fest.

package Chapter_14.Part_8;

public class Example14_9 {
    public static void main(String[] args) {
        myWindow myWindow = new myWindow();
    }
}

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Java- und MySQL-Datenbanken zur Implementierung der Registrierung und Anmeldung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen