java与数据库实现登陆_java 与数据库链接 实现用户的注册和登陆

这篇博客展示了如何使用Java编程实现一个简单的用户登录和注册功能,通过连接MySQL数据库来验证用户输入的用户名和密码,成功登录后显示提示对话框。文章包括了数据库连接、SQL查询以及事件监听器的使用。
摘要由CSDN通过智能技术生成

package com.lijianrong.Mysql.cn;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

import java.io.*;

import java.sql.*;

/**

*做者:rong

* 功能:与数据库中的用户数据进行匹配 匹配成功的话显示成功对话框。

* 2016-7-17

*/

public class LoginFrame

{

// 登陆界面的GUI组件

private JFrame jf = new JFrame("登陆");

private JPanel jp1=new JPanel();

private JPanel jp2=new JPanel();

private JPanel jp3=new JPanel();

private JButton jb1=new JButton("注册");

private JTextField userField = new JTextField(20);

private JTextField passField = new JTextField(20);

private JButton loginButton = new JButton("登陆");

public void init()throws Exception

{

// 加载驱动

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

// 为登陆按钮添加事件监听器

loginButton.addActionListener(e -> {

// 登陆成功则显示“登陆成功”

System.out.println(userField.getText() +"\t"+passField.getText()+"\t"+validate(userField.getText(), passField.getText()));

if (validate(userField.getText(), passField.getText()))

{

JOptionPane.showMessageDialog(jf, "登陆成功");

}

// 不然显示“登陆失败”

else

{

JOptionPane.showMessageDialog(jf, "登陆失败");

}

});

jb1.addActionListener(e -> {

// 登陆成功则显示“登陆成功”

System.out.println(userField.getText() +"\t"+passField.getText()+"\t"+validate(userField.getText(), passField.getText()));

try {

cheak(userField.getText(),passField.getText());

} catch (Exception e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

});

class mylister extends WindowAdapter{

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}

jf.addWindowListener(new mylister());

jp1.add(new Label("用户名:"));

jp1.add(userField);

jp2.add(new Label("密码:"));

jp2.add(passField);

jp3.add(jb1);

jp3.add(loginButton);

jf.add(jp3,BorderLayout.SOUTH);

jf.add(jp1,BorderLayout.NORTH);

jf.add(jp2 , BorderLayout.CENTER);

jf.pack();

jf.setVisible(true);

}

//注册用户和密码 (1)首先先检查数据库中是否有相应的数据,若是有的话提示"该用户存在,请直接登陆。"

private void cheak(String userName, String userPass) throws Exception

{

if (validate(userField.getText(), passField.getText()))

{

JOptionPane.showMessageDialog(jf, "您已经有帐号了请直接登陆。");

}

else

{

String sql="insert ignore into student values(?,?)";

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?"

+ "user=root&password=768696&useUnicode=true&characterEncoding=UTF8");

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1, userName);

pstmt.setString(2, userPass);

pstmt.executeUpdate();

JOptionPane.showMessageDialog(jf, "注册成功请登陆。。。。");

}

}

//判断数据库中是否有该用户名和密码

private boolean validate(String userName, String userPass)

{

String sql="select *from student where student.name='"+userName+"' and student.password='"+userPass+"'";

try(

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?"

+ "user=root&password=768696&useUnicode=true&characterEncoding=UTF8");

Statement pstmt = conn.createStatement();

ResultSet rs=pstmt.executeQuery(sql))

{//若是查询的ResultSet里有超过一条的记录,则登陆成功

if (rs.next())

{

return true;

}

}

catch(Exception e)

{

e.printStackTrace();

}

return false;

}

public static void main(String[] args) throws Exception

{

new LoginFrame().init();

}

}

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解答这个问题。 Java 链接数据库实现登录验证需要以下步骤: 1. 导入 JDBC 驱动程序:在项目中导入 JDBC 驱动程序 jar 包。 2. 加载 JDBC 驱动程序:使用 Class.forName() 方法加载 JDBC 驱动程序。 3. 创建数据库连接:使用 DriverManager.getConnection() 方法创建数据库连接。 4. 创建 Statement 对象:使用 Connection.createStatement() 方法创建 Statement 对象。 5. 执行 SQL 语句:使用 Statement.executeQuery() 方法执行 SQL 语句。 6. 处理查询结果:使用 ResultSet 对象处理查询结果。 下面是一个简单的 Java 链接数据库实现登录验证的代码示例: ```java import java.sql.*; public class Login { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载 JDBC 驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 创建数据库连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); // 创建 Statement 对象 stmt = conn.createStatement(); // 执行 SQL 语句 String sql = "SELECT * FROM user WHERE username='admin' AND password='123456'"; rs = stmt.executeQuery(sql); // 处理查询结果 if (rs.next()) { System.out.println("登录成功!"); } else { System.out.println("用户名或密码错误!"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ``` 在上面的代码示例中,我们连接的数据库是 MySQL,用户名和密码分别是 root 和 password。我们执行的 SQL 语句是查询用户名为 admin,密码为 123456 的用户是否存在。如果存在,则输出登录成功;如果不存在,则输出用户名或密码错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值