swing和MySQL登录注册_JavaSwing+Mysql实现简单的登录界面+用户是否存在验证

原生Java+mysql登录验证

client

login.java

功能:实现登录页面,与服务端传来的数据验证

package LoginRegister;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.regex.Pattern;

import javax.swing.*;

public class Login extends JFrame {

String user;

String pwd;

String struser[] = new String[2];

public Login() {

setBounds(200, 200, 400, 250);

setDefaultCloseOperation(EXIT_ON_CLOSE);

Container c = getContentPane();

c.setLayout(null);

setTitle("登录");

JLabel jl = new JLabel("username");

jl.setBounds(50, 50, 100, 20);

JLabel j2 = new JLabel("password");

j2.setBounds(50, 100, 100, 20);

JTextField jt = new JTextField();

jt.setBounds(150, 50, 200, 20);

JPasswordField jp = new JPasswordField();

jp.setBounds(150, 100, 200, 20);

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

btn.setBounds(150, 150, 100, 30);

c.add(jl);

c.add(jt);

c.add(j2);

c.add(jp);

c.add(btn);

btn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

user = jt.getText();// 获取用户名;

pwd = new String(jp.getPassword());// 获取、转换密码;

if(user!=null&&pwd!=null) {//判断输入的值是否完整

String data = SendLogin.sendLoginUser(user, pwd);

Pattern p = Pattern.compile("&");//使用正则表达式,获取

String[] type = p.split(data);

String conState=type[0];

String exsitsState = type[1];

if(conState.equals("true")&&exsitsState.equals("true")) {

System.out.println("登录成功!");

}else {

if(conState.equals("false")) {

System.out.println("服务器连接失败!");

}

if(exsitsState.equals("false")) {

System.out.println("帐户不存在!");

}

}

}else {

System.out.println("请填写完整!");

}

}

});

}

public static void main(String[] args) {

Login login = new Login();

login.setVisible(true);

login.setResizable(false);// 设置窗体不可改变大小

}

}

SendLogin.java

功能:实现客户端的数据传输给服务端,与服务端交换数据。

package LoginRegister;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.Socket;

import java.net.UnknownHostException;

public class SendLogin {

public static String sendLoginUser(String username, String password) {

String data=null;

try {

Socket client = new Socket("127.0.0.1", 1100);// 连接服务器;

System.out.println("连接成功!");

OutputStream out = client.getOutputStream();

// String message = "服务器你好,我是客户端";

String strUser[] = new String[2];

strUser[0] = username;

strUser[1] = password;

String user = "username=" + username + "&" + "password=" + password;

out.write(user.getBytes());

InputStream in = client.getInputStream();

byte bt[] = new byte[1024];

int len = in.read(bt);

data = new String(bt, 0, len);

System.out.println("服务器发来消息:" + data);

client.close();// 关闭连接;

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return data;

}

}

server

Server.java

功能:实现与客户端的数据交互

package com.login.server;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.regex.Pattern;

import com.login.mysql.MysqlConnect;

public class Server {

public static void main(String[] args) {

try {

ServerSocket server = new ServerSocket(1100);//创建服务器套接字,开启1100端口;

System.out.println("服务器启动成功,等待用户接入……");

Socket client = server.accept();//等待用户接入;

InputStream in = client.getInputStream();

byte bt[] = new byte[1024];

int len = in.read(bt);

String data = new String(bt,0,len);

//System.out.println("客户端发来消息:"+data);

Pattern a = Pattern.compile("&");//使用正则表达式,获取

String[] type = a.split(data);

Pattern b = Pattern.compile("=");//使用正则表达式,获取

String[] type2 = b.split(type[0]);

Pattern c = Pattern.compile("=");//使用正则表达式,获取

String[] type201 = c.split(type[1]);

String username = type2[1];

String password = type201[1];

//System.out.println(username);

//System.out.println(password);

OutputStream out = client.getOutputStream();

String returninfo = MysqlConnect.login(username, password);

//String message = "客户端你好,我是服务器";

out.write(returninfo.getBytes());

client.close();//关闭连接;

System.out.println("有客户端接入,客户端IP:"+client.getInetAddress());//获取客户端地址;

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

MysqlConnect.java

功能:连接数据库,查询数据

package com.login.mysql;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class MysqlConnect {

public static String login(String user,String pwd) {

String userstate = null;

String conState="false";

String infoState="false";

String userDemo = user;

String pwdDemo = pwd;

try {

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

Connection con = null; // 连接数据库的接口;

PreparedStatement state = null;// 发送sql语句

ResultSet rs = null; // 结果集接口;

String url = "jdbc:mysql://localhost:3306/test";

String username = "root";

String password = "123456";

String sql = "SELECT username,password FROM user WHERE username=? and password =?";

con = DriverManager.getConnection(url, username, password);// 连接数据库;

if(con!=null) {

conState = "true";

}

state = con.prepareStatement(sql);

state.setString(1, userDemo);

state.setString(2, pwdDemo);

rs = state.executeQuery();

String exisit = null;

while(rs.next()) {

exisit =rs.getString(1);//判断是否有满足条件的一行

}

if(exisit!=null) {

infoState="true";

}

//System.out.println(exisit);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

userstate = conState+"&"+infoState;

return userstate;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4月27日微软云训练营活动-现场图集

1.签到 2.到场同学,这一天是工作日,但是人气依然很火。 转载于:https://www.cnblogs.com/finehappy/p/3262296.html

vim编程 插入 保存不退出 保存退出 退出不保存 另存为其他文件名 保存覆盖现有文件...

---恢复内容开始--- 在xshell里写代码,如果需要编辑代码,可以输入 vim xxx.py ,进入vim编辑界面 这里的xxx.py表示 python的存储文件,后缀名是.py。1.插入字符 输入 i 可键入或者shift i2&…

wdcp mysql密码_wdcp默认的mysql密码是多少?

重置mysql root密码方法一、Windows环境的找回方法:1、打开cmd命令窗口,先输入命令:net stop mysql 回车 #关闭mysql服务。进入到D:\SOFT_PHP_PACKAGE\mysql\bin\ 目录下,执行mysqld --skip-grant-tables 启动MySQL Server (如果报…

Java中内存中的Heap、Stack与程序运行的关系

堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题;而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题;堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存…

ASP.NET Core的配置(5):配置的同步[设计篇]

本节所谓的“配置同步”主要体现在两个方面:其一,如何监控配置源并在其变化的时候自动加载其数据,其目的是让应用中通过Configuration对象承载的配置与配置源的数据同步;其二、当Configuration对象承载的配置放生变换的时候如何向…

mysql 5.6 linux安装配置_linux手动安装配置mysql5.6

1.准备工作①官网下载:https://dev.mysql.com/downloads/mysql/5.6.html#downloads下载之后上传到服务器。②创建linux组用户groupadd mysqluseradd -g mysql mysql2.安装①解压,比如放到了/usr/local/,进入到该目录下,进行用z解压gz包&#…

Winodws Socket I/O模型的整理

Winodws Socket I/O模型的整理大致分以五种.其中Overlapped I/O模型是有两种实现方法. 一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型/完成例程模型五:完成端口IOCP模型 这…

KVM安装Windows Server 2008 R2使用virtio硬盘

在上一篇文章中,我们介绍了使用IDE硬盘来安装Windows Server 2008 R2,这篇文章我们来介绍使用virtio硬盘来安装Windows Server 2008 R2。 说明:KVM默认使用的硬盘格式为virtio。 使用virtio接口的硬盘,我们必须加载virtio硬盘驱动。如果不加载…

Sublime Text 2 入门及技巧

看了 Nettuts 对 Sublime Text 2 的介绍,立刻就兴奋了,诚如作者 Jeffrey Way 所说:“《永远的毁灭公爵》都发布了,TextMate 2 还没发”,你还能指望它么?TextMate 开发者的消极态度已经无法让人忍受了。而作…

跨域名,服务器登录 .

编辑器加载中... function SingleSignOn() {//只能用脚本改变指定 Form 提交的对象 document.getElementById("form1").action"http://。。。。。/WebApp/UsersLogin.aspx"; //把隐藏控件 __VIEWSTATE 中的值变更为 LoginTransfer…

YII 配置文件

用YIIFramework的库开发 Java代码 .... Yii::createWebApplication($config); //没有run Yii::import(class1,true),在将class1类文件路径存储时,同时include该文件 注意:你也可以将配置文件分为多个文件&#xff0…

mysql 备份到别的机器_物理拷贝备份mysql到其他机器上恢复

经常会遇到mysql数据要迁徙的情况 ,逻辑导出是可以的 但是就是太慢 第三方工具也同样可以用 也是操作麻烦,最简单粗暴的方式就是直接拷贝物理文件来的最快 也很简单 当然 前提是远程服务器和目标服务器是相同的文件系统和mysql版本,不然还是没…

Hibernate映射关系总结篇

又从头学习了一遍hibernate的映射关系,每一次都会有新的收获,总是感觉自己还是不会hibernate。单从配置上说:知其然不知其所以然,马上就要找工作的人了,很是为自己担心呀!! 众所周知&#xff0c…

iOS内存管理(ARC,MRC)

iOS内存管理方式: ARC Automatic Reference Counting 自动引用计数 MRC Manual Reference Counting 手动引用计数 更改管理方式: 内存管理的问题: 1、内存泄露:不再需要的对象没有释放。 2、野指针:正在使用的对象提前…

height:auto 火狐没边框

css高度设置为auto后,设置的边框 ie正常 火狐 就没有边框了,解决方法 之前是这样写的 #right_bottom { width: 790px; height:auto; border: #EBEBEB 1px solid; } 最后添加了一个overflow: hidden;属性ok了,ie火狐都可以显示边框 即: #right_bottom {…

mysql装完后navicat无法连接_重装mysql后导致Navicat连接失败

今天重装了mysql数据库,然后再使用navicat去连接数据库的时候,一直报错 1251 Client does not support authentication protocol requested by server解决方法:1、cmd登录mysql2、修改Navicat中连接数据库的密码3、刷新mysql的系统权限表flus…

【求助】小系统组成大系统所遇到的问题

以下只是举例&#xff01; 环境&#xff1a; 1&#xff0c;通用实体库CommonEntity&#xff0c;里面有管理员类 class Administrator<TEntity> : Entity<TEntity>, IAdministrator where TEntity:Administrator<TEntity>{ static TEntity Login(String usern…

Linux下提示命令找不到

摘要&#xff1a;linux&#xff0c;$PATH linux下输入某些命令时会提示&#xff1a;bash:command not found。 首先&#xff0c;查看$PATH中是否包含了这些命令。 $PATH&#xff1a;决定了shell到哪些目录中去寻找命令或程序&#xff0c;PATH值是一系列的目录。当运行程序…

怎样创建XML文档

在程序中&#xff0c;我们怎样创建一个XML文档。下面演示中&#xff0c;Insus.NET在程序创建一个和http://www.cnblogs.com/insus/p/3274220.html 一模一样的XML文档。可以在HTML markup放一个铵钮&#xff1a; 去.aspx.cs写按钮事件&#xff1a; 上图代码示例中&#xff0c;右…

UVa - 11988 Broken Keyboard(数组模拟链表)

题目链接&#xff1a;http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id18693 #include <iostream> #include <algorithm> #include <cstring> using namespace std; /**********************************************************************…