首頁 > 資料庫 > mysql教程 > 怎麼用Java和MySQL資料庫實現註冊和登入

怎麼用Java和MySQL資料庫實現註冊和登入

PHPz
發布: 2023-06-01 08:49:05
轉載
1786 人瀏覽過

設計想法

1、資料庫設計-在了解使用者的需求之後,根據使用者的這些需求進行資料庫的設計。

2、資料模型-就是把資料庫表的結構全都封裝在一個類別當中。

3、資料處理工具類別-根據資料模型給出的需求設計一個工具類別來處理資料。

4、視圖展示-最後提供給使用者一個互動方便的視圖介面。

具體設計

1、首先要在資料庫中建好表。

2、根據業務需求,制定對應的資料模型。本次設計主要是登入和註冊兩個內容,因此設計了兩個資料模型。

(1)註冊模型

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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)登入模型

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

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、根據上述設計好的兩個資料模型,分別設計對應的資料處理的工具類。

(1)註冊模型處理工具類別

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

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)登入模型處理工具類別

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

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、可以設計一個測試類,用來校驗程式能否正常通過。能通過,就可以開始設計視圖了。

(1)註冊視圖的設計

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

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)登入視圖的設計

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

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、把以上兩個視圖類別結合在一個類別當中,方便之後的維護和修改。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

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、一切都設計完畢了,就可以運行了。設定一個程式的主入口。

1

2

3

4

5

6

7

package Chapter_14.Part_8;

 

public class Example14_9 {

    public static void main(String[] args) {

        myWindow myWindow = new myWindow();

    }

}

登入後複製

以上是怎麼用Java和MySQL資料庫實現註冊和登入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
linux安裝mysql報錯
來自於 1970-01-01 08:00:00
0
0
0
mysql 升級後無法重新啟動mysql服務的問題
來自於 1970-01-01 08:00:00
0
0
0
MySQL停止進程
來自於 1970-01-01 08:00:00
0
0
0
phpstudy不能啟動mysql?
來自於 1970-01-01 08:00:00
0
0
0
環境中mysql
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板