JDBC简单注册界面与数据库的连接)

一、开发环境

JDK1.8+Eclipse 2021-06 (4.20.0)+mysql 8.0.27+Navicat 15

二、步骤

1、在Eclipse里安装windowbuilder

查看你的Eclipse的版本在你的eclipse中点击Help->About Eclipse, 然后你就会看到
在这里插入图片描述
进入WindowBuilder的官网 找到你相应的版本并复制它的链接下面是官网链接: 官网下载
在这里插入图片描述
回到你的Eclipse,点击Help->Install New Software 进入以下界面:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启完后就可以开始使用了

1.1、WindowBuilder的使用

在你的工程中右键点击 New–>other…出现如下界面
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、创建数据库和表

  1. 数据库名:nucdb20
    登陆数据库,使用Navicat可视化操作数据库登陆进去你自己的数据库,新建一个数据库
    在这里插入图片描述

在这里插入图片描述

  1. 表名:users
  2. 字段名及类型
    username varchar(20)
    userpsw varchar(20)
    age int
    在这里插入图片描述
    保存表名这里起为users

3、Eclipse中新建项目

  1. 项目名:nucpro
  2. 将MySQL8.0 JDBC驱动程序jar包复制到项目根目录,类似下图:
    在这里插入图片描述
    MySQL8JDBC jar包下载地:JDBC JAR

在这里插入图片描述
按照你的操作系统下载即可。下载到本地后,然后复制到你的项目目录底下

3.1、右键点击jar包,将jar添加到构建路径,操作方式如下:

在这里插入图片描述

4、新建WindowBuilder应用

  1. 右键点击nucpro项目,新建WindowBuilder应用:包名:cn.edu.nuc,类名:Regist
    在这里插入图片描述
    在这里插入图片描述
    进去后取个名字Finish即可。

5、双击src下cn.edu.nuc包中的Regist.java,切换到 Design窗口,设计GUI界面

在这里插入图片描述
自己设计即可,设计之前要清空布局
在这里插入图片描述
点这个按钮即可,其他部件单机添加到右边进行设计即可。

6、双击"注册"按钮,编写注册程序

源码:

package nucpro;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.Font;
import java.awt.HeadlessException;
import javax.swing.JTextField;
import java.awt.Color;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.awt.event.*;
public class Regist {
	private JFrame frame;
	private JTextField unametxt;
	private JPasswordField upswtxt;
	private JTextField agetxt;
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Regist window = new Regist();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	/**
	 * Create the application.
	 */
	public Regist() {
		initialize();
	}
	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 450, 338);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JLabel lblNewLabel = new JLabel("教务系统学生注册");
		lblNewLabel.setBackground(new Color(0, 255, 255));
		lblNewLabel.setFont(new Font("微软雅黑", Font.PLAIN, 24));
		lblNewLabel.setBounds(109, 47, 202, 33);
		frame.getContentPane().add(lblNewLabel);
		
		JLabel lblNewLabel_1 = new JLabel("学生用户名");
		lblNewLabel_1.setBounds(20, 116, 73, 15);
		frame.getContentPane().add(lblNewLabel_1);
		
		unametxt = new JTextField();
		unametxt.setBounds(87, 106, 208, 35);
		frame.getContentPane().add(unametxt);
		unametxt.setColumns(10);
		
		JLabel lblNewLabel_2 = new JLabel("密码");
		lblNewLabel_2.setBounds(20, 161, 58, 15);
		frame.getContentPane().add(lblNewLabel_2);
		
		upswtxt = new JPasswordField();
		upswtxt.setBounds(87, 151, 208, 35);
		frame.getContentPane().add(upswtxt);
		
		JLabel lblNewLabel_3 = new JLabel("年龄");
		lblNewLabel_3.setBounds(20, 204, 58, 15);
		frame.getContentPane().add(lblNewLabel_3);
		
		agetxt = new JTextField();
		agetxt.setBounds(87, 194, 208, 35);
		frame.getContentPane().add(agetxt);
		agetxt.setColumns(10);
		
		JButton btnNewButton = new JButton("注册");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// JDBC代码
				// 1.去上三个文本框里的值
				String uname = unametxt.getText();
				String upsw = upswtxt.getText();
				int age = Integer.parseInt(agetxt.getText());
				try {
					// 2.连接数据库
					/**
					 * @description mysql8写法:url写法:jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8&serverTimezone=UTC&useUnicode=true&useSSL=false
					 *             驱动程序:driver: com.mysql.cj.jdbc.Driver
					 *             mysql5写法:url写法:jdbc:mysql://localhost:3306/数据库名
					 *             驱动程序:com.mysql.jdbc.Driver
					 * */
					Class.forName("com.mysql.cj.jdbc.Driver");// 注册JDBC驱动
					String url = "jdbc:mysql://localhost:3306/nucdb20?characterEncoding=utf8&serverTimezone=UTC&useUnicode=true&useSSL=false ";
					Connection conn = DriverManager.getConnection(url,"	你的数据库用户名","你的数据库密码");
					String sql = "INSERT INTO users VALUES(?,?,?)";
					PreparedStatement pstmt = conn.prepareStatement(sql);
					pstmt.setString(1,uname);
					pstmt.setString(2,upsw);
					pstmt.setInt(3, age);
					int flag = pstmt.executeUpdate();// 下达执行指令
					if (flag ==1) {
						JOptionPane.showMessageDialog(null, "注册成功","提示信息",JOptionPane.INFORMATION_MESSAGE);
					}else {
						JOptionPane.showMessageDialog(null, "注册失败","提示信息",JOptionPane.INFORMATION_MESSAGE);
					}
				} catch (HeadlessException e1) {
					// TODO 自动生成的 catch 块
					e1.printStackTrace();
				} catch (ClassNotFoundException e1) {
					// TODO 自动生成的 catch 块
					e1.printStackTrace();
				} catch (SQLException e1) {
					// TODO 自动生成的 catch 块
					e1.printStackTrace();
				}
			}
		});
		btnNewButton.setBounds(140, 255, 97, 23);
		frame.getContentPane().add(btnNewButton);
	}
}

注意MySQL5与MySQL8 JDBC写法的不同。最后就可以运行看结果了。
在这里插入图片描述
数据鬼已存进去数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cai-4

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值