利用Java连接MySQL做登陆界面
1、首先需要建立一个类,在这里,我命名为newLogin
newLogin类的代码如下

package p4;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class newLogin extends JFrame implements ActionListener{private static final long serialVersionUID = 1L;private Connection con = null;private Statement statement = null;private ResultSet res = null;private ButtonGroup buttongroup = new ButtonGroup();private MyPanel jp = new MyPanel();private JLabel ul = new JLabel("用户名:");private JLabel pl = new JLabel("密    码:");private JLabel ts = new JLabel("");private JTextField uname = new JTextField();private JPasswordField pword = new JPasswordField();private JRadioButton[] butArray = {new JRadioButton("学生",true),new JRadioButton("教师")};private JButton login = new JButton("登陆");private JButton reset = new JButton("重置");public newLogin() {addListener();initialFrame();}private void initialFrame() {Font font = new Font("宋体",Font.BOLD,12);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle("登陆");jp.setLayout(null);ul.setBounds(100, 30, 60, 30);jp.add(ul);uname.setBounds(170, 30, 140, 30);jp.add(uname);pl.setBounds(100, 80, 60, 30);pword.setBounds(170, 80, 140, 30);jp.add(pl);jp.add(pword);ts.setBounds(100, 160, 200, 50);jp.add(ts);ts.setFont(font);login.setBounds(100, 220, 70, 30);jp.add(login);login.setFont(font);reset.setBounds(220, 220, 70, 30);jp.add(reset);reset.setFont(font);add(jp);setResizable(false);buttongroup.add(butArray[0]);buttongroup.add(butArray[1]);butArray[0].setBounds(120, 130, 100, 50);jp.add(butArray[0]);butArray[1].setBounds(220, 130, 100, 50);jp.add(butArray[1]);butArray[0].setContentAreaFilled(false);butArray[1].setContentAreaFilled(false);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();int centerX = screenSize.width/2;int centerY = screenSize.height/2;int w = 427;int h = 331;setBounds(centerX-w/2, centerY-h/2, w, h);setVisible(true);uname.requestFocus(true);getContentPane().add(jp);jp.getRootPane().setDefaultButton(login);}private void addListener() {this.login.addActionListener(this);this.uname.addActionListener(this);this.pword.addActionListener(this);}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource() == uname) {pword.requestFocus();}if(e.getSource() == pword) {butArray[0].requestFocus();}if(e.getSource() == butArray[0]||e.getSource() == butArray[1]||e.getSource() == login) {
//          this.ts.setText("正在为您努力加载,请稍等......");int type = this.butArray[0].isSelected()?0:1;String username = this.uname.getText().trim();char[] p = this.pword.getPassword();String password = String.valueOf(p).trim();if(username.equals("")) {JOptionPane.showMessageDialog(this, "请输入用户名!","错误",JOptionPane.ERROR_MESSAGE);ts.setText("");return ;}if(password.equals("")) {JOptionPane.showMessageDialog(this, "请输入密码!","错误",JOptionPane.ERROR_MESSAGE);ts.setText("");return ;}try {con = new connection().getConnection();  //调用自己写的一个数据库连接类statement = con.createStatement();if(type == 0) {String sql = "select * from stuuser where "+"username_stu='"+username+"'and password_stu='"+password+"'";res = statement.executeQuery(sql);if(res.next()) {JOptionPane.showMessageDialog(this, "登录成功!","提示",JOptionPane.INFORMATION_MESSAGE);this.dispose();}else {JOptionPane.showMessageDialog(this, "用户名或密码错误!","错误",JOptionPane.ERROR_MESSAGE);ts.setText("");uname.setText("");pword.setText("");}//关闭数据库连接if(res != null) {res.close();}if(statement != null) {statement.close();}if(con != null) {con.close();}}else {String sql = "select * from teauser where "+"username_tea='"+username+"'and password_tea='"+password+"'";res = statement.executeQuery(sql);if(res.next()) {String spec_name = res.getString(1);JOptionPane.showMessageDialog(this, "登录成功!","提示",JOptionPane.INFORMATION_MESSAGE);this.dispose();}else {JOptionPane.showMessageDialog(this, "用户名或密码错误!","错误",JOptionPane.ERROR_MESSAGE);ts.setText("");uname.setText("");pword.setText("");}//关闭数据库连接if(res != null) {res.close();}if(statement != null) {statement.close();}if(con != null) {con.close();}}}catch(SQLException ea) {ea.printStackTrace();}}else if(e.getSource() == reset) {uname.setText("");pword.setText("");}}
}

2、编写数据库连接类,在这里命名为connection,然后在类里写一个获取连接的放回,并返回一个连接。
connection类的代码如下:

package p4;import java.sql.Connection;
import java.sql.DriverManager;
//import java.sql.ResultSet;
import java.sql.SQLException;
//import java.sql.Statement;public class connection {private Connection con = null;
//  private Statement statement = null;
//  private ResultSet res = null;String driver = "com.mysql.cj.jdbc.Driver";String url  = "jdbc:mysql://localhost:3306/Stu_manager?serverTimezone=Asia/Shanghai";String name = "root";String passwd = "123456";public connection() {}public Connection getConnection() {try{Class.forName(driver).newInstance();con = DriverManager.getConnection(url,name,passwd);}catch(ClassNotFoundException e){System.out.println("对不起,找不到这个Driver");e.printStackTrace();}catch(SQLException e){e.printStackTrace();}catch(Exception e){e.printStackTrace();}return con;}
}

3、在MySQL数据库中需建立两个用户表,分别用来存储不同用户的登陆账号和密码,这里学生用户表为stuuser,教师用户表为teauser,建表的SQL语句如下:
stuuser表:

create table stuuser(username_stu varchar(20) primary key,password_stu char(20) not null,
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

teauser表:

create table teauser(username_tea varchar(20) primary key,password_tea char(20) not null,
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

我也是初学不久,分享一下!

Java简单登陆界面实现相关推荐

  1. HTML5.0实例练习(三) --制作一个简单登陆界面

    今天分享一个简单的实例--制作一个简单登陆界面 代码如下: 代码执行结果如下: 这里面用到了<table><th><td><tr>这些表格标签,这些在这 ...

  2. Java用户登陆界面例子 代码

    转自http://www.cnblogs.com/liwustore/archive/2013/01/01/2841492.html 好久没有总结这个月的学习了,先唠叨几句,这个月工作烂的一塌糊涂.跟 ...

  3. java基础登陆界面

    图形化编程:登陆界面    一个登录界面的组件:账号/密码框,登录/注册按钮,窗体,图片 1.首先定义类,public class Login  再定义方法,public void showUI 2. ...

  4. java swing 登陆界面+跳转界面

    package Example; /*** @author: * @function:用户登录界面实现,跳转到监测数据界面*/ import java.awt.Font;import java.awt ...

  5. Java学习笔记之三——Java用户登陆界面

    好久没有总结这个月的学习了,先唠叨几句,这个月工作烂的一塌糊涂.跟老板吵架,然后辞职.今天是递交辞职申请的倒数第三天. Java用户登陆这块,主要还是学到了新的类: 1,边界布局:BorderLayo ...

  6. java音乐登陆界面_第四篇——Spring音乐登录界面设计及实现(C#)

    Spring音乐播放器,我们小组设计其启动时有一个登录界面,用户初次可以注册,输入用户名和密码,点击注册即将输入信息保存到register文本文件中:如果已有用户名,输入用户名和密码,点击登录,程序会 ...

  7. java中登陆界面怎么连接到下一个界面啊_JavaWeb登陆成功后跳转到上一个页面

    JavaWeb登陆成功后跳转到上一个页面,这个标题注定要词不达意,你可能会遇到这样的情形,当点击页面的某个请求时,由于用户未登录,需要跳转到登录页,用户登录成功后,再跳转到上一个页面:还有一种情况,多 ...

  8. Android_studio 开发简单登陆界面

    展示: 主要功能:页面跳转,登录,显示密码. 1.图标获取:https://www.iconfont.cn/    这个是阿里巴巴矢量图标库的链接 关于添加图标可以参见 2.页面跳转:通过点击按钮实现 ...

  9. Java简单计算器界面及功能的实现

    实验要求 编写计算器界面并实现其功能. 实验步骤 1.界面基本样式绘制 代码实现 import java.awt.*; import javax.swing.*; public class f_fra ...

  10. java 简单时钟界面_JavaFX实现简易时钟效果(一)

    本文实例为大家分享了javafx实现简易时钟效果的具体代码,供大家参考,具体内容如下 效果图 用当前时间创建时钟,绘制表盘. 钟表是静止的.让指针动起来,请参照: 主函数文件 showclock: p ...

最新文章

  1. 【美国斯坦福大学人工智能研究院:人工智能当以人为本】
  2. 分享Kali Linux 2017年第18周镜像文件
  3. 32岁的老程序员面试没通过,一问原因,挺突然的...
  4. Apache Hadoop YARN – ResourceManager--转载
  5. 白话Elasticsearch30-IK中文分词之热更新IK词库
  6. Spring Cloud【Finchley】实战-01注册中心及商品微服务
  7. 数据结构与算法--5.Python实现十大排序算法
  8. 小程序功能模块-优客娱乐视频1.0.5源码
  9. linux 怎么改授权用户权限,linux – systemd:授予非特权用户权限以更改某个特定服务...
  10. 从头认识Spring-1.14 SpEl表达式(1)-简单介绍与嵌入值
  11. 网易云音乐 网络错误 linux,Linux版网易云音乐播放音乐时无限显示“网络错误”的解决办法...
  12. 京东(保险)部门直推面经
  13. SQL Server安装和修改身份验证方式
  14. QQ在线等级算法实现
  15. AI初学者必看的4个顶级人工智能领域岗位
  16. 计算机图形学笔记 || 自由曲线和曲面
  17. 龙族幻想最新东京机器人位置_龙族幻想东京攻略异闻怎么触发_龙族幻想东京攻略异闻详细攻略_求知软件网...
  18. Laravel 报错 file_put_contents(): failed to open stream......解决
  19. 安装好Windows 8后必做的几件事情,让你的Win8跑的更快更流畅。
  20. EmuELEC初体验(源码下载)

热门文章

  1. Nginx初学者指南
  2. ## 在webapp上使用input:file, 指定capture属性调用默认相机,摄像,录音功能
  3. postgresql搭建从库
  4. word-break: break-all与word-wrap:break-word的区别
  5. ASP.NET MVC系列 框架搭建(二)之仓储层的优化
  6. POJ3258River Hopscotch(二分)
  7. 刷新代码IOS 上拉分页刷新--
  8. android 模糊读取文件名_如何从Android中的文件路径获取文件名
  9. YOLO-V3可视化
  10. windows 通过公匙SSH到其他服务器