swing 新增mysql_JAVA学习之Swing+MySql实现简单的登录查询与插入

该博客展示了如何使用Java Swing构建一个学生管理系统的登录界面,并实现与MySQL数据库的连接,进行用户注册和登录操作。在登录过程中,如果账号已存在则提示错误,否则尝试插入新用户信息。代码包括JFrame窗口设置、组件布局以及按钮事件监听,同时包含了数据库连接、SQL查询和异常处理。
摘要由CSDN通过智能技术生成

设计Swing

package cn.lab.JDBC;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class Login {

// public static void main(String[] args) {

// Login demo = new Login();

// demo.initUI();

// }

void initUI() {

//public static void main(String[] args) {

JFrame f = new JFrame("学生管理登录页面");

Container cp = f.getContentPane();

f.setSize(430, 220);

//f.setLocation(450,300);

f.setLocationRelativeTo(null);

f.setLayout(null);

JLabel labelUsername = new JLabel("账号: ");

labelUsername.setFont(new Font("楷体", Font.PLAIN, 20));

JTextField tfUsername = new JTextField(10);

JLabel labelPassword = new JLabel("密码: ");

labelPassword.setFont(new Font("楷体", Font.PLAIN, 20));

JTextField tfPassword = new JTextField(10);

JButton j1 = new JButton("注册");

JButton j2 = new JButton("登录");

JButton j3 = new JButton("退出");

labelUsername.setBounds(60, 5, 120, 70);

tfUsername.setBounds(110, 25, 260, 30);

labelPassword.setBounds(60, 40, 120, 70);

tfPassword.setBounds(110, 60, 260, 30);

j1.setBounds(50, 100, 60, 40);

j2.setBounds(190, 100, 60, 40);

j3.setBounds(330, 100, 60, 40);

cp.add(labelUsername);

cp.add(tfUsername);

cp.add(labelPassword);

cp.add(tfPassword);

cp.add(j1);

cp.add(j2);

cp.add(j3);

j1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

try {

if (!new StuMS().login(tfUsername.getText(), tfPassword.getText())) {

try {

new StuMS().insert(tfUsername.getText(), tfPassword.getText());

} catch (Exception exception) {

exception.printStackTrace();

}

}

else{

JOptionPane.showMessageDialog(null, "id已存在,请登录", "注意", JOptionPane.ERROR_MESSAGE);

}

} catch (Exception exception) {

exception.printStackTrace();

}

}

});

j2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// JButton JB = (JButton)e.getSource();

String id = tfUsername.getText();

String password = tfPassword.getText();

boolean out = false;

try {

out = new StuMS().login(id, password);

} catch (Exception exception) {

exception.printStackTrace();

}

if (out == true) {

Component frame = null;

JOptionPane.showInternalMessageDialog(frame, "已存在,登录成功",

"提示", JOptionPane.INFORMATION_MESSAGE);

} else {

JOptionPane.showMessageDialog(null, "id或密码错误,请重新检查", "注意", JOptionPane.ERROR_MESSAGE);

}

//labelPassword.setText(id);

}

});

j3.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

});

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

//}

}

}

实现数据库链接

package cn.lab.JDBC;

import com.sun.tools.javac.Main;

import java.sql.*;

//1.导入驱动jar包

//2.注册驱动

//3.获取数据库连接对象

//4.定义sql 语句

//5.获取执行sql的对象Statement

public class StuMS {

Connection conn = null;

PreparedStatement pstml = null;

ResultSet rs = null;

public StuMS() throws Exception {

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection

("jdbc:mysql://localhost:3306/test??useSSL=false", "root", "root");

}

public void insert(String username, String password) throws Exception {

String sql = "insert into infor(id,password) values (?,?);";

pstml = conn.prepareStatement(sql);

pstml.setString(1, username);

pstml.setString(2, password);

pstml.execute();

}

public boolean login(String username, String password) {

if (username == null || password == null) {

return false;

}

try {

String sql = "select * from infor where id=? and password= ? ";

pstml = conn.prepareStatement(sql);

pstml.setString(1, username);

pstml.setString(2, password);

rs = pstml.executeQuery();

return rs.next();

} catch (SQLException e) {

e.printStackTrace();

} finally {

if (rs != null) {

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (pstml != null) {

try {

pstml.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

return false;

}

}

最后是主程序调用

package cn.lab.JDBC;

import java.util.Scanner;

public class main {

public static void main(String[] args) {

Login demo = new Login();

demo.initUI();

// Scanner sc=new Scanner(System.in);

// System.out.println("请输入用户名:");

// String username=sc.next();

// System.out.println("请输入你的密码:");

// String password=sc.next();

// StuMS logain=new StuMS();

// boolean flag=StuMS.login(username,password);

// if(flag){

// System.out.println("登陆成功");

// }else {

// System.out.println("用户名或密码错误");

// }

}

}

实现样式

c26f35752c6d3b3c5833ed8ddf2a62d7.png

5e1f4c8bc29d770a31b7fa05fd75d4ca.png

fd9c67c520752d851b6a7be79bdb5141.png

ef6878d88b1669d178ef66d630da2ced.png

欢迎留言!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值