简单的登录系统(java+JFrame+Mysql)

连接数据库

package 注册信息;    
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;  public class conn_db{  Connection con;  String url = null;  Statement stmt;  public void connection() throws ClassNotFoundException{  //url = "jdbc:mysql://localhost:3306/wang?" +"user=root&password=wsq & useUnicode=true & characterEnunicode=UTF8";  //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/web08?useUnicode=true&characterEncoding=utf-8&useSSL=true","root", "wsq");/*try{  Class.forName("com.mysql.jdbc.Driver");  con = DriverManager.getConnection(url);  System.out.println("连接成功");  stmt = con.createStatement();  }  catch(SQLException e){  e.printStackTrace();  }  */url = "jdbc:mysql://localhost:3306/wang?user=root&password=wsq&useUnicode=true&characterEncoding=UTF8";  
//这里的数据库密码每个人的都不同,需要更改try {Class.forName("com.mysql.jdbc.Driver");con = DriverManager.getConnection(url);System.out.println("连接成功");  stmt = con.createStatement();/*Statement s =  con.createStatement();System.out.println(con.isClosed());*/}catch (Exception e) {e.printStackTrace();}}  public static void main(String[] args) throws ClassNotFoundException {  conn_db conn = new conn_db();  conn.connection();  }  
}  

注册信息,在数据库里面进行检查

package 注册信息;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;import javax.swing.*;public class login_db extends conn_db implements ActionListener {JTextField accT,nameT;JButton okB,registB;register re;ResultSet rs;public void setaccountT(JTextField a){accT = a;}public void setnameT(JTextField n){nameT = n;}public void setButton(JButton b1,JButton b2){okB = b1;registB = b2;}public void actionPerformed(ActionEvent e){if(e.getSource() == okB){if(accT.getText().equals(""))			//判断用户输入是否为空;JOptionPane.showMessageDialog(null, "请填写账号!");else if(nameT.getText().equals(""))JOptionPane.showMessageDialog(null, "请输入密码");else{String accountT = accT.getText();String namesT = nameT.getText();try {connection(); 		//加载conn_db类,连接数据库;boolean com = compareWithSql(accountT,namesT);if(com)JOptionPane.showMessageDialog(null, "登录成功");else{JOptionPane.showMessageDialog(null, "账号或密码不正确,请重新输入");accT.setText("");nameT.setText("");}} catch (Exception e1) {e1.printStackTrace();}}}else if(e.getSource() == registB){new JFrame().dispose();re = new register();}}//账号输入检查boolean compareWithSql(String accountT,String namesT) throws Exception{String sql;		Connection con = super.con;Statement stmt = con.createStatement();sql = "select * from my";
//		System.out.println(sql);rs = stmt.executeQuery(sql);while(rs.next()){				//用户输入的信息和数据库中的信息做比较,判断输入是否正确;String acc = rs.getString(1);String names = rs.getString(2);if(acc.equals(accountT) && names.equals(namesT)){//break;return true;}
//			System.out.println(acc + "   " + names);
//			System.out.println(accountT + "   " + namesT);}
//		System.out.println("hahahaha");return false;}}

JFrame窗口登录页面

package 注册信息;import java.awt.FlowLayout;
import java.awt.event.ActionListener;import javax.swing.JFrame;
import javax.swing.*;public class login extends JFrame{//JLabel accountL,nameL;JTextField accountT,nameT;JButton okB,registB;Box baseB1,baseB2,box1,box2,box3;		//此登录页面采用Box布局方式;login_db log;login(){init();}void init(){log = new login_db();accountT = new JTextField(10);nameT = new JTextField(20);okB = new JButton("登录");registB = new JButton("注册");box1 = Box.createVerticalBox();box1.add(new JLabel("账号:"));box1.add(Box.createVerticalStrut(8));box1.add(new JLabel("密码"));box2 = Box.createVerticalBox();box2.add(accountT);box2.add(Box.createVerticalStrut(8));box2.add(nameT);box3 = Box.createHorizontalBox();box3.add(okB);box3.add(Box.createHorizontalStrut(20));box3.add(registB);baseB1 = Box.createHorizontalBox();baseB1.add(box1);baseB1.add(Box.createHorizontalStrut(8));baseB1.add(box2);baseB2 = Box.createVerticalBox();baseB2.add(baseB1);baseB2.add(Box.createVerticalStrut(10));baseB2.add(box3);okB.addActionListener(log);registB.addActionListener(log);log.setaccountT(accountT);log.setnameT(nameT);log.setButton(okB,registB);add(baseB2);setLayout(new FlowLayout());setBounds(200,150,400,300);setVisible(true);setTitle("用户登录界面");setDefaultCloseOperation(DISPOSE_ON_CLOSE);}public static void main(String[] args) {login lo = new login();}
}

创建并检查数据库表

package 注册信息;  import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
import java.sql.Connection;  
import java.sql.ResultSet;  
import java.sql.Statement;  import javax.swing.*;  public class register_db extends conn_db implements ActionListener{  JTextField textacc,textname;  JButton okButton,resetButton;  Statement stmt;  ResultSet rs;  
//  double acc;  
//  String name;  
//  Connection con = null;  public void setaccountField(JTextField a){  textacc = a;  }  public void setnameField(JTextField n){  textname = n;  }  public void setokButton(JButton b1){  okButton = b1;  }  public void setresetButton(JButton b2){  resetButton = b2;  }  public void actionPerformed(ActionEvent e){  if(e.getSource() == okButton){  if(textacc.getText().equals(""))            //判断用户输入是否为空;  JOptionPane.showMessageDialog(null, "请输入账号","警告对话框",JOptionPane.WARNING_MESSAGE);  else if(textname.getText().equals(""))  JOptionPane.showMessageDialog(null,"请输入姓名","警告对话框",JOptionPane.WARNING_MESSAGE);  else{  String acc = textacc.getText();  String name = textname.getText();  try {  connection();  writeInSql(acc,name);  } catch (Exception e1) {  System.out.println("插入失败");  e1.printStackTrace();  }  }  }  else if(e.getSource() == resetButton){  textacc.setText("");  textname.setText("");  }  }  void writeInSql(String acc,String name) throws Exception{  String sql;  Connection con = super.con;  Statement stmt = con.createStatement();  //创建并检查数据库表,若没有"my"表,则创建表并执行插入操作,若表已存在,则直接执行操作,插入数据  sql = "create table if not exists my(account varchar(10),name varchar(20))";  stmt.executeUpdate(sql);  
//      System.out.println(sql);        //查错;  System.out.println("创建表成功");      //插入存文本框中获取的数据;  sql = "insert into my(account,name) values('"+acc+"','"+name+"')";  int rw = stmt.executeUpdate(sql);  
//      System.out.println(sql);  if(rw <= 0){             //判断数据是否插入成功  JOptionPane.showMessageDialog(null,"注册失败");  }  else{  JOptionPane.showMessageDialog(null, "注册成功");  }  }  
}

用户页面注册

package 注册信息;import javax.swing.JFrame;import java.awt.FlowLayout;
import javax.swing.*;public class register extends JFrame{JLabel accountLabel,nameLabel;JButton okButton,resetButton;JTextField accountText,nameText;Box baseBox1,baseBox2, box1,box2,box3;		 //此注册页面采用Box布局方式;//JPanel pane1,pane2;register_db regist;register(){init();}void init(){setLayout(new FlowLayout());accountLabel = new JLabel("账号");nameLabel= new JLabel("姓名");accountText = new JTextField(10);nameText = new JTextField(20);okButton = new JButton("确定");resetButton = new JButton("重置");regist = new register_db();//		lab = new JLabel("用户注册页面");box1 = Box.createVerticalBox();box1.add(accountLabel);box1.add(Box.createVerticalStrut(8));box1.add(nameLabel);box2 = Box.createVerticalBox();box2.add(accountText);box2.add(Box.createVerticalStrut(8));box2.add(nameText);box3 = Box.createHorizontalBox();box3.add(okButton);box3.add(Box.createHorizontalStrut(15));box3.add(resetButton);baseBox1 = Box.createHorizontalBox();baseBox1.add(box1);baseBox1.add(Box.createHorizontalStrut(8));baseBox1.add(box2);baseBox2 = Box.createVerticalBox();baseBox2.add(baseBox1);baseBox2.add(Box.createVerticalStrut(10));baseBox2.add(box3);add(baseBox2);okButton.addActionListener(regist);resetButton.addActionListener(regist);regist.setaccountField(accountText);regist.setnameField(nameText);regist.setokButton(okButton);regist.setresetButton(resetButton);setBounds(200,200,400,300);setVisible(true);setDefaultCloseOperation(DISPOSE_ON_CLOSE);setTitle("用户注册界面");}//	void registAction(){
//		
//	}//	public static void main(String[] args) {
//		register re = new register();
//	}}

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

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

相关文章

冬季止咳化痰的饮食偏方集锦

1、萝卜葱白风寒咳嗽 萝卜1个,葱白6根,生姜15克.用水三碗先将萝卜煮熟,再放葱白,姜,煮剩一碗汤.连渣一次服.宣肺解表,化痰止咳.治风寒咳嗽,痰多泡沫,伴畏寒,身倦酸痛等. 2、红糖姜枣汤治伤风咳嗽 红糖30克,鲜姜15克,红枣30克. 以水三碗煎至过半.顿服,服后出微汗即愈. 驱风散寒.…

c语言中数组越界怎么办_如果我们使用C语言数组中的越界索引怎么办?

c语言中数组越界怎么办Let’s understand first, what is index out of bounds? 首先让我们了解一下 &#xff0c; 什么是索引超出范围&#xff1f; Let suppose you have an array with 5 elements then the array indexing will be from 0 to 4 i.e. we can access element…

FreeRTOS任务基础知识

任务特性 在RTOS中&#xff0c;一个实时应用可以作为一个独立的任务&#xff0c;支持抢占&#xff0c;支持优先级&#xff0c;每个任务都有自己的堆栈&#xff0c;当任务切换时将上下文环境保存在堆栈中&#xff0c;再次调用任务时&#xff0c;取出上下文信息&#xff0c;继续…

测试Rockey 4 Smart加密锁的C语言代码

测试Rockey 4 Smart加密锁的C语言代码 // win32Console_dog_test.cpp : Defines the entry point for the console application. /// // //测试Rockey 4 Smart加密锁的C语言代码 // /// #include "stdafx.h" #include <conio.h> #include "time.h" #…

C——任意一个偶数分解两个素数

题目&#xff1a;一个偶数总能表示为两个素数之和 以上实例运行输出结果为&#xff1a; 请输入一个偶数: 4 偶数4可以分解成1和3两个素数的和 #include <stdio.h> #include <stdlib.h> int Isprimer(int n); int main() {int n,i;do{printf("请输入一个偶数&…

c#委托调用另一窗口函数_在C#中使用委托调用成员函数

c#委托调用另一窗口函数Prerequisite: Delegates in C# 先决条件&#xff1a; C&#xff03;中的代表 We can also call a member function of a class using delegates. It is similar to static function calls, here we have to pass member function using an object on t…

Java版AVG游戏开发入门[0]——游戏模式转换中的事件交互

Java版AVG游戏开发入门[0]——游戏模式转换中的事件交互 示例程序下载地址&#xff1a;http://download.csdn.net/source/999273&#xff08;源码在jar内&#xff09; AVG&#xff0c;即Adventure Game&#xff0c;可以直译为[冒险游戏]。但是通常情况下我们说AVG是指[文字冒险…

FreeRTOS任务创建和删除

任务创建和删除的API函数 xTaskCreate()&#xff1a;使用动态方法创建一个任务xTaskCreateStatic()&#xff1a;使用静态方法创建一个任务xTaskCreateRestricated()&#xff1a;创建一个使用MPU进行限制的任务&#xff0c;相关内存使用动态内存分配vTaskDelete()&#xff1a;删…

Delphi 调试

调试&#xff1a;F9执行F8逐过程单步调试F7逐语句单步调试转载于:https://www.cnblogs.com/JackShao/archive/2012/04/30/2476931.html

1.创建单项链表

# include <stdio.h> # include <malloc.h> # include <stdlib.h>typedef struct Node{int data;//数据域struct Node *pNext;//指针域}NODE, *PNODE; //NODE等价于struct Node //PNOD等价于struct Node * //函数声明PNODE create_list(void); void traverse…

python 日本就业_日本的绘图标志 Python中的图像处理

python 日本就业Read basics of the drawing/image processing in python: Drawing flag of Thailand 阅读python中绘图/图像处理的基础知识&#xff1a; 泰国的绘图标志 The national flag of Japan is a rectangular white banner bearing a crimson-red disc at its center…

[windows phone 7 ]查看已安装程序GUID

首先介绍下wp7RootToolsSDK,这个功能相当强大&#xff0c;适合研究wp7高级功能。 它支持File&#xff0c;Register操作&#xff0c;比之前的COM调用要简单&#xff0c;方便。 功能:查看已安装程序的guid 开发心得: 用的是mozart,rom多&#xff0c;刷机吧&#xff0c;最麻烦的是…

FreeRTOS任务挂起和恢复

任务挂起&#xff1a;暂停某个任务的执行 任务恢复&#xff1a;让暂停的任务继续执行 通过任务挂起和恢复&#xff0c;可以达到让任务停止一段时间后重新运行。 相关API函数&#xff1a; vTaskSuspend void vTaskSuspend( TaskHandle_t xTaskToSuspend );xTaskToSuspend &am…

向oracle存储过程中传参值出现乱码

在页面中加入<meta http-equiv"Content-Type" content"text ml;charsetUTF-8"/>就可以解决这一问题 适用情况&#xff1a; 1.中文 2.特殊符号 转载于:https://www.cnblogs.com/GoalRyan/archive/2009/02/16/1391348.html

Scala程序将多行字符串转换为数组

Scala | 多行字符串到数组 (Scala | Multiline strings to an array) Scala programming language is employed in working with data logs and their manipulation. Data logs are entered into the code as a single string which might contain multiple lines of code and …

SQL 异常处理 Begin try end try begin catch end catch--转

SQL 异常处理 Begin try end try begin catch end catch 总结了一下错误捕捉方法:try catch ,error, raiserror 这是在数据库转换的时候用的的异常处理, Begin TryInsert into SDT.dbo.DYEmpLostTM(LogDate,ProdGroup,ShiftCode,EmployeeNo,MONo,OpNo,OTFlag,LostTypeID,OffStd…

FreeRTOS中断配置与临界段

Cortex-M中断 中断是指计算机运行过程中&#xff0c;出现某些意外情况需主机干预时&#xff0c;机器能自动停止正在运行的程序并转入处理新情况的程序&#xff08;中断服务程序&#xff09;&#xff0c;处理完毕后又返回原被暂停的程序继续运行。Cortex-M内核的MCU提供了一个用…

vector向量容器

一、vector向量容器 简介&#xff1a; Vector向量容器可以简单的理解为一个数组&#xff0c;它的下标也是从0开始的&#xff0c;使用时可以不用确定大小&#xff0c;但是它可以对于元素的插入和删除&#xff0c;可以进行动态调整所占用的内存空间&#xff0c;它里面有很多系统…

netsh(二)

netsh 来自微软的网络管理看家法宝很多时候&#xff0c;我们可能需要在不同的网络中工作&#xff0c;一遍又一遍地重复修改IP地址是一件比较麻烦的事。另外&#xff0c;系统崩溃了&#xff0c;重新配置网卡等相关参数也比较烦人&#xff08;尤其是无线网卡&#xff09;。事实上…

java uuid静态方法_Java UUID getLeastSignificantBits()方法与示例

java uuid静态方法UUID类getLeastSignificantBits()方法 (UUID Class getLeastSignificantBits() method) getLeastSignificantBits() method is available in java.util package. getLeastSignificantBits()方法在java.util包中可用。 getLeastSignificantBits() method is us…