JAVA实现注册界面的基本思路
注册界面的构成:
- 界面框架
页面框架可以继承自Frame类。 - 注册按钮
注册按钮可以由方法button构建。 - 可输入数据文本框
可输入数据文本框可以由方法TextField构建。
注册操作所涉及的对象以及发生的事件
- 注册操作的本质
将文本框中的文本记录于数据库。 - 注册操作实现的方法
将文本框中的文本记录下;
点击注册按钮——>文本进入数据库对应字段。
数据库的设置与连接
- JAVA数据库的驱动
这里利用MYSQL数据库。这个数据库是最简单的数据库,语法限制较少。
intellj idea里面数据库驱动的安装 - 数据库语言基础
show databases;看看都有些啥库
use test;使用test库
show tables;看看库里面有啥表
desc gameutil;看gameutil表的结构
select * from gameutil;搜索gameutil表里面所有字段的内容
补:对当黑客有兴趣的可以下载个burp抓网页数据包,这些数据库语言中有很多容易入侵的地方,可以自己琢磨琢磨。 - JAVA连接数据库的语句
// 1.加载数据访问驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.连接到数据"库"上去
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
String user= "root";
String passwd= "root";
Connection conn= DriverManager.getConnection(url,user,passwd);
//3.构建SQL命令
Statement state=conn.createStatement();
要是想用上述代码成功连接数据库,首先得下一个能用的MYSQL。然后把它的账户密码都设置为root。之后,利用intellj idea里面自动补全代码的功能,把需要补全的地方自动补全就行。
这个JAVA程序的核心代码
button2.addActionListener(e -> {
String asd = Text1.getText();
String s="insert into gameutil values('"+asd+"',100)";
try {
state.executeUpdate(s);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
});
程序的意思:当button2按钮被按下的一刻,注册事件(Text1文本内容记录数据库)便被触发了。
注意:insert into gameutil values(’"+asd+"’,100),JAVA里面与数据库连接的语句不能直接解析变量,需要利用上述格式。
程序执行结果
后记
这程序写的有点简单,方便学习。
这半个月考驾照,累死了,但终于考到手了。爽歪歪啊~
写程序吧,逻辑思维很重要的,下次搞搞多线程,事件逻辑图啥的要上了。
程序如下:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.*;
public class GameUtil extends Frame{
public GameUtil(String str) {
super(str); //调用父类的构造方法,GameUtil继承于Frame,也就是说,它的父类是Frame
}
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// TODO Auto-generated method stub
GameUtil fr = new GameUtil("First Game!!");
TextField Text1 = new TextField(20);
Button button2 = new Button("login");
// 1.加载数据访问驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.连接到数据"库"上去
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
String user= "root";
String passwd= "root";
Connection conn= DriverManager.getConnection(url,user,passwd);
//3.构建SQL命令
Statement state=conn.createStatement();
button2.addActionListener(e -> {
String asd = Text1.getText();
String s="insert into gameutil values('"+asd+"',100)";
try {
state.executeUpdate(s);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
});
fr.setLayout(new FlowLayout());//布局方式,没有布局方式,布局会乱的很
fr.add(Text1);
fr.add(button2);
fr.setSize(250,120); //设置Frame的大小
fr.setResizable(true);//Frame大小可调整
fr.setBackground(Color.yellow); //设置Frame的背景色
fr.setVisible(true); //设置Frame为可见
fr.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}