JAVA实现JWT注册窗口,且手撸操作mysql数据库
1、JWT注册窗口
package bysj_wzc.cilent;
import java.awt.*;
import javax.swing.*;
import bysj_wzc.cilent.ClientReadAndPrint.OpenRegisterListen;
//注册类
public class Register {
JTextField textField = null;
JPasswordField pwdField = null;
ClientReadAndPrint.RegisterListen listener=null;
ClientReadAndPrint.OpenLoginListen openLgLt=null;
// 构造函数
public Register() {
init();
}void init() {
JFrame jf = new JFrame("注册");
jf.setBounds(500, 250, 310, 210);
jf.setResizable(false);
// 设置是否缩放JPanel jp1 = new JPanel();
JLabel headJLabel = new JLabel("注册界面");
headJLabel.setFont(new Font(null, 0, 35));
// 设置文本的字体类型、样式 和 大小
jp1.add(headJLabel);
JPanel jp2 = new JPanel();
JLabel nameJLabel = new JLabel("用户名:");
textField = new JTextField(20);
JLabel pwdJLabel = new JLabel("密码:");
pwdField = new JPasswordField(20);
JButton registerBtn = new JButton("注册");
JButton loginBtn = new JButton("有账号?登录");
jp2.add(nameJLabel);
jp2.add(textField);
jp2.add(pwdJLabel);
jp2.add(pwdField);
jp2.add(registerBtn);
jp2.add(loginBtn);
JPanel jp = new JPanel(new BorderLayout());
// BorderLayout布局
jp.add(jp1, BorderLayout.NORTH);
jp.add(jp2, BorderLayout.CENTER);
// 设置监控
listener = new ClientReadAndPrint().new RegisterListen();
// 新建监听类
listener.setJTextField(textField);
// 调用PoliceListen类的方法
listener.setJPasswordField(pwdField);
listener.setJFrame(jf);
pwdField.addActionListener(listener);
// 密码框添加监听
registerBtn.addActionListener(listener);
// 按钮添加监听// 设置打开登录监控
openLgLt = new ClientReadAndPrint().new OpenLoginListen();
// 新建监听类
openLgLt.setJFrame(jf);
loginBtn.addActionListener(openLgLt);
// 按钮添加监听jf.add(jp);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置关闭图标作用
jf.setVisible(true);
// 设置可见
}
}
2、监听类
/**********************注册监听(内部类)**********************/
class RegisterListen implements ActionListener{
JTextField textField;
JPasswordField pwdField;
JFrame registerJFrame;
// 注册窗口Login login = null;
public void setJTextField(JTextField textField) {
this.textField = textField;
}
public void setJPasswordField(JPasswordField pwdField) {
this.pwdField = pwdField;
}
public void setJFrame(JFrame jFrame) {
this.registerJFrame = jFrame;
}
public void actionPerformed(ActionEvent event) {
userName = textField.getText();
String userPwd = String.valueOf(pwdField.getPassword());
// getPassword方法获得char数组
//通过账号密码注册
int i = DBUtils.addData(userName, userPwd);
if(i == -1) {
JOptionPane.showMessageDialog(registerJFrame, "已有此账号,请勿重复注册!", "提示", JOptionPane.WARNING_MESSAGE);
return;
}else if(i == 0) {
JOptionPane.showMessageDialog(registerJFrame, "注册失败,请查验参数是否超过大小", "提示", JOptionPane.WARNING_MESSAGE);
return;
}else {
JOptionPane.showMessageDialog(registerJFrame, "添加成功!", "提示", JOptionPane.WARNING_MESSAGE);
}
try {
Thread.sleep(1500);
}catch(Exception e) {
e.printStackTrace();
}login = new Login();
// 新建登录窗口
registerJFrame.setVisible(false);
// 隐藏注册窗口
}
}/**********************切换注册页面监听(内部类)**********************/
class OpenRegisterListen implements ActionListener{
JTextField textField;
JPasswordField pwdField;
JFrame loginJFrame;
// 登录窗口Register register = null;
public void setJTextField(JTextField textField) {
this.textField = textField;
}
public void setJPasswordField(JPasswordField pwdField) {
this.pwdField = pwdField;
}
public void setJFrame(JFrame jFrame) {
this.loginJFrame = jFrame;
}
public void actionPerformed(ActionEvent event) {
register = new Register();
// 新建注册窗口
loginJFrame.setVisible(false);
// 隐藏登录窗口
}
}
3、数据库操作
package bysj_wzc.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class DBUtils {
// 加载数据库驱动com.mysql.jdbc.Driver
private static String dbdriver = "com.mysql.cj.jdbc.Driver";
//因为MySQL是8.0版本,所以需要加上cj,如果是5.0版本就不用
// 获取mysql连接地址
private static String dburl = "jdbc:mysql://127.0.0.1:3306/databases?&useSSL=false&serverTimezone=UTC";
//这里的&serverTimezone=UTC很重要,之前就是因为这个出错
// 数据名称
private static String username = "root";
// 数据库密码
private static String userpassword = "admin";
// 获取一个数据的连接
public static Connection conn = null;
// 获取连接的一个状态//下面是一个例子,其中database1是数据库名,后面是一条查询语句
public static void main(String[] args) throws SQLException {
System.out.println("进入");
//List
推荐阅读
- 救济小白培训记一_JAVA日期工具类包含很多常用操作日期和时间戳方法
- JS+HTML实现经典游戏吃豆人
- Air实现Go程序实时热重载使用过程解析示例
- 算法设计(修改链表的内容)
- 算法设计(模划分详细实现)
- 模幂(模运算中的幂)
- 算法设计(从1到n的模乘逆)
- Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava
- JavaScript typedArray.values()用法示例
- JavaScript typeof运算符用法介绍