用mysql数据库中的用户名和密码在GUI上实现登陆的功能

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ABCD1226/article/details/77489715


本次实现功能是从mysql数据库中读取用户名(studentName)和密码(loginPwd),在GUI上实现登陆的功能

这是mysql数据库中的相关数据    数据库跟我上次建的数据库是一样的。

数据库代码:

CREATE TABLE `student` (
   `studentNo` int(4) NOT NULL COMMENT '学号',
   `loginPwd` varchar(20) NOT NULL COMMENT '密码',
   `studentName` varchar(50) NOT NULL COMMENT '学生姓名',
   `sex` char(2) NOT NULL DEFAULT '男' COMMENT '性别',
   `gradeId` int(4) DEFAULT NULL COMMENT '学期编号',
   `phone` varchar(50) DEFAULT NULL COMMENT '联系电话',
   `address` varchar(255) DEFAULT NULL COMMENT '地址',
   `bornDate` datetime DEFAULT NULL COMMENT '出生时间',
   `email` varchar(50) DEFAULT NULL COMMENT '邮件账号',
   `identityCard` varchar(18) DEFAULT NULL COMMENT '身份证号码',
   PRIMARY KEY (`studentNo`),
   KEY `FK_student` (`gradeId`),
   CONSTRAINT `FK_student` FOREIGN KEY (`gradeId`) REFERENCES `grade` (`gradeID`) ON UPDATE NO ACTION
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC

 具体图表:

 

 

Eclipse中的具体代码:

package task1;

 

import java.awt.EventQueue;

import java.awt.Frame;

 

import javax.swing.JOptionPane;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JButton;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

public class Test01 extends JFrame {

 

private JPanel contentPane;

private JTextField textField;

private JTextField textField_1;

private String str = null;

private String password = null;

 

/**

 * Launch the application.

 */

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Test01 frame = new Test01();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

 

/**

 * Create the frame.

 */

public Test01() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 518, 371);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

 

JLabel label = new JLabel("\u7528\u6237\u540D\uFF1A");

label.setBounds(108, 69, 54, 15);

contentPane.add(label);

 

textField = new JTextField();

textField.addMouseListener(new MouseAdapter() {

});

textField.setBounds(172, 66, 186, 21);

contentPane.add(textField);

textField.setColumns(10);

 

JLabel label_1 = new JLabel("\u5BC6\u7801\uFF1A");

label_1.setBounds(108, 140, 54, 15);

contentPane.add(label_1);

 

textField_1 = new JTextField();

textField_1.addMouseListener(new MouseAdapter() {

});

textField_1.setBounds(175, 137, 183, 21);

contentPane.add(textField_1);

textField_1.setColumns(10);

 

JButton button = new JButton("\u767B\u5F55");

button.addMouseListener(new MouseAdapter() {

@Override

public void mousePressed(MouseEvent e) {

str = textField.getText();

password = textField_1.getText();

if (login(str, password) == true) {

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

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

} else {

System.out.println("请重新输入");

}

}

});

button.setBounds(108, 224, 93, 23);

contentPane.add(button);

 

JButton button_1 = new JButton("\u6CE8\u518C");

button_1.setBounds(265, 224, 93, 23);

contentPane.add(button_1);

}

 

public boolean login(String studentname, String loginpwd) {

System.out.println(studentname);

boolean flag = false;

// 加载驱动

try {

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

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

Connection con = null;

Statement st = null;

ResultSet rs = null;

try {

// 建立连接

// ?useUnicode=true&characterEncoding=utf8

// jdbc和数据库交互数据的编码自己设置,设置成utf8

con = DriverManager.getConnection(

"jdbc:mysql://127.0.0.1:3306/myschool?useUnicode=true&characterEncoding=utf8", "root", "123456");

// 执行sql语句

st = con.createStatement();

// 得到结果集

StringBuffer sql = new StringBuffer("select * from student where studentname='");

sql.append(studentname).append("' and loginpwd='").append(loginpwd).append("'");

System.out.println(sql);

rs = st.executeQuery(sql.toString());// executeQuery执行查询语句,executeUpdate执行增删改

if (rs.next()) {

flag = true;

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

// 关闭

try {

if (rs != null) {

rs.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

try {

if (st != null) {

st.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

try {

if (con != null) {

con.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

return flag;

}

}

 

效果图:

 

 

输入用户名:黄蓉

输入密码:123

会有以下效果:

 

 

慢慢敲代码,一步一步学会,一点一点懂得,每天都能学到很多新知识。

展开阅读全文

没有更多推荐了,返回首页