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

来源:互联网 发布:精英特速读软件 编辑:程序博客网 时间:2024/06/08 05:13


本次实现功能是从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 JPanelcontentPane;

private JTextFieldtextField;

private JTextFieldtextField_1;

private Stringstr =null;

private Stringpassword =null;

 

/**

 * Launch the application.

 */

public static void main(String[]args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Test01frame =new Test01();

frame.setVisible(true);

}catch (Exceptione) {

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);

 

JLabellabel =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);

 

JLabellabel_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);

 

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

button.addMouseListener(new MouseAdapter() {

@Override

public void mousePressed(MouseEvente) {

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);

 

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

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

contentPane.add(button_1);

}

 

public boolean login(Stringstudentname, Stringloginpwd) {

System.out.println(studentname);

boolean flag =false;

// 加载驱动

try {

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

}catch (ClassNotFoundExceptione) {

e.printStackTrace();

}

Connectioncon =null;

Statementst =null;

ResultSetrs =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();

// 得到结果集

StringBuffersql =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 (SQLExceptione) {

e.printStackTrace();

}finally {

// 关闭

try {

if (rs !=null) {

rs.close();

}

}catch (SQLExceptione) {

e.printStackTrace();

}

try {

if (st !=null) {

st.close();

}

}catch (SQLExceptione) {

e.printStackTrace();

}

try {

if (con !=null) {

con.close();

}

}catch (SQLExceptione) {

e.printStackTrace();

}

}

return flag;

}

}

 

效果图:

 

 

输入用户名:黄蓉

输入密码:123

会有以下效果:

 

 

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