Java小程序之集合框架模拟数据库实现用户登录和注册功能
2016-11-21 14:48
1776 查看
Java小程序之集合框架模拟数据库实现用户登录和注册功能
前言:关于Java中的集合框架知识,我以前也写过一篇博客,大家可以去查阅;通过再次学习java中的集合框架知识,我又有了新的理解,更能从整体上认知Java中的集合框架;其实,前面画板知识中用到了集合框架的一些知识的呢;
还是先看看简单的知识点吧!
Java中的集合框架:
1.概念
集合框架其实指的就是容器,能将大量的相同类型的元素进行统一封装(回想高级画板重绘的知识)
Java集合框架是Java语言的重要组成部分,封装了大量的数据结构的实现(我们前面自定义队列大体上实现了和ArrayList同样的功能,集合框架中还有很多的类和工具,它们有各自的优点的缺点,看时机情况需要,可以进行选择)
2.Collection和Map接口(整体认知)
3.List接口集合:ArrayList和Vector队列
a) ArrayList数组队列(知道该如何遍历)
b) Vector向量队列
特点:有序、可重复
4.Set接口集合:HashSet集合
特点:无序的、不能重复的
遍历set
1)先拿到set容器的迭代器对象
2)检测容器中是否有东西可以取
3)有东西可以取,把东子取出来进行保存
4)利用循环结构,遍历set
5.Map接口集合:HashMap集合
HashMap是以键值对的形式进行存储的,需要注意的是,值可以相同,但键是唯一的,好比有很多人可以叫小明,但我们怎么确认哪一个小明是我们要找的呢?我们可以给每个小明一个独一无二的编号,通过编号去找到我们要找的小明;类似生活中每个人的身份证是独一无二的,但却有很多同名同姓的人;如果给同一个键赋值d的话,后面的值会覆盖前面赋的值,但键不变,返回的是被覆盖的值;详见JAVA中的API文档
好了,进入正题,我们接下来要用Map接口中的HashMap集合来模拟数据库实现用户登录和注册功能
思路:
1、创建窗体(登录界面)
2、给窗体添加登录和注册按钮以及相关控件(用户名和密码输入框以及标签)
3、给登录按钮添加监听器,处理登录逻辑
3.1、先用HashMap创建对象,并添加<用户名、面>键值对(模拟数据库)
3.2、当点击登录按钮时,检测输入框中输入的用户名和密码是否在数据库内(是否有该键值对)
3.3、提示登录成功或者登录失败
4、给注册按钮天剑监听器,处理注册逻辑
4.1、当点击注册按钮时,出现注册页面
4.2、当用户输入新的用户名和密码时,检测数据库中是否已经存在该用户名并提示
4.3、确认注册后,往数据库中添加新的数据(新的键值对)
原代码:
登录界面类:
登录监听类:
注册按钮监听类:
注册页面中的注册按钮的监听类:
主函数中的测试类:
运行结果:
登录和注册页面
注册功能实现:
新注册用户登录验证:
总结:
1、通过该项目,深入理解Java中的集合框架知识;
2、对对象传递,静态对象的应用以及静态代码块等知识更加熟练了;
3、对写小程序的思路有了提升;发现写程序思路非常的重要,有了思路,写东西会顺畅很多;
前言:关于Java中的集合框架知识,我以前也写过一篇博客,大家可以去查阅;通过再次学习java中的集合框架知识,我又有了新的理解,更能从整体上认知Java中的集合框架;其实,前面画板知识中用到了集合框架的一些知识的呢;
还是先看看简单的知识点吧!
Java中的集合框架:
1.概念
集合框架其实指的就是容器,能将大量的相同类型的元素进行统一封装(回想高级画板重绘的知识)
Java集合框架是Java语言的重要组成部分,封装了大量的数据结构的实现(我们前面自定义队列大体上实现了和ArrayList同样的功能,集合框架中还有很多的类和工具,它们有各自的优点的缺点,看时机情况需要,可以进行选择)
2.Collection和Map接口(整体认知)
3.List接口集合:ArrayList和Vector队列
a) ArrayList数组队列(知道该如何遍历)
b) Vector向量队列
特点:有序、可重复
4.Set接口集合:HashSet集合
特点:无序的、不能重复的
遍历set
1)先拿到set容器的迭代器对象
2)检测容器中是否有东西可以取
3)有东西可以取,把东子取出来进行保存
4)利用循环结构,遍历set
5.Map接口集合:HashMap集合
HashMap是以键值对的形式进行存储的,需要注意的是,值可以相同,但键是唯一的,好比有很多人可以叫小明,但我们怎么确认哪一个小明是我们要找的呢?我们可以给每个小明一个独一无二的编号,通过编号去找到我们要找的小明;类似生活中每个人的身份证是独一无二的,但却有很多同名同姓的人;如果给同一个键赋值d的话,后面的值会覆盖前面赋的值,但键不变,返回的是被覆盖的值;详见JAVA中的API文档
好了,进入正题,我们接下来要用Map接口中的HashMap集合来模拟数据库实现用户登录和注册功能
思路:
1、创建窗体(登录界面)
2、给窗体添加登录和注册按钮以及相关控件(用户名和密码输入框以及标签)
3、给登录按钮添加监听器,处理登录逻辑
3.1、先用HashMap创建对象,并添加<用户名、面>键值对(模拟数据库)
3.2、当点击登录按钮时,检测输入框中输入的用户名和密码是否在数据库内(是否有该键值对)
3.3、提示登录成功或者登录失败
4、给注册按钮天剑监听器,处理注册逻辑
4.1、当点击注册按钮时,出现注册页面
4.2、当用户输入新的用户名和密码时,检测数据库中是否已经存在该用户名并提示
4.3、确认注册后,往数据库中添加新的数据(新的键值对)
原代码:
登录界面类:
package com.huaxin.login; import java.awt.FlowLayout; import java.util.HashMap; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.text.StyledEditorKit.ForegroundAction; public class LoginFrame extends JFrame{ //HashMap对象,模拟数据库 //这里是集合的泛型形式,指定存储的内容是字符串、字符串键值对类型 //声明为静态类型,便于访问 public static HashMap<String,String> map = new HashMap<String,String>(); //数据库初始化,当加载程序时,就要加载数据库 static { for (int i = 0; i < 10; i++) { map.put("user"+i, "pwd"+i); } } //初始化窗体 public void initFrame(){ this.setSize(250,200); this.setDefaultCloseOperation(3); this.setTitle("登录验证"); this.setLocationRelativeTo(null); this.setLayout(new FlowLayout()); JLabel username = new JLabel("用户名:"); JTextField name =new JTextField(15); JLabel pwd = new JLabel("密 码 :"); JTextField password =new JTextField(15); JButton bt = new JButton("登录"); JButton bt1 = new JButton("注册"); this.add(username); this.add(name); this.add(pwd); this.add(password); this.add(bt); this.add(bt1); this.setVisible(true); //登录按钮添加监听器,处理登录逻辑 ButtonListener bl= new ButtonListener(name,password); bt.addActionListener(bl); //注册按钮添加监听器,处理注册逻辑 ZhuceLisener zl = new ZhuceLisener(); bt1.addActionListener(zl); } }
登录监听类:
package com.huaxin.login; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; import javax.swing.JTextField; public class ButtonListener implements ActionListener{ public JTextField name; public JTextField password; //获取传过来的输入框对象 public ButtonListener(JTextField name, JTextField password) { this.name=name; this.password=password; } //处理登录逻辑 public void actionPerformed(ActionEvent e) { //获取输入框的用户名和密码信息 String username =name.getText(); String pwd =password.getText(); //检测用户名和密码输入是否为空 if(username.equals("")){ JOptionPane.showMessageDialog(null, "请输入用户名!"); } else if( pwd.equals("")){ JOptionPane.showMessageDialog(null, "请输入用户密码!"); } //不为空是查找数据库 else{ if(CheckLogin(username,pwd)){ JOptionPane.showMessageDialog(null, "登录成功!"); }else{ JOptionPane.showMessageDialog(null, "登录失败!"); } } } public boolean CheckLogin(String name,String pawd){ //数据库中是否包含该用户名 if(LoginFrame.map.containsKey(name)){ String key =name; //检验密码是否正确 if(LoginFrame.map.get(key).equals(pawd)){ return true; }else{ JOptionPane.showMessageDialog(null, "密码错误!"); return false; } } return false; } }
注册按钮监听类:
package com.huaxin.login; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class ZhuceLisener implements ActionListener{ public JTextField name; public JTextField password; public JFrame jf; //注册按钮处理逻辑 public void actionPerformed(ActionEvent e) { //创建注册页面 ZhuceLisener zhece = new ZhuceLisener(); zhece.showFrame(); } public void showFrame(){ jf = new JFrame(); jf.setSize(250,200); jf.setTitle("欢迎注册"); jf.setLocationRelativeTo(null); jf.setLayout(new FlowLayout()); JLabel username = new JLabel("请输入用户名:"); name =new JTextField(15); JLabel pwd = new JLabel("请输入密 码 :"); password =new JTextField(15); //该注册页面的注册按钮添加监听器 JButton bt1 = new JButton("注册"); Listenerone one = new Listenerone(this); bt1.addActionListener(one); jf.add(username); jf.add(name); jf.add(pwd); jf.add(password); jf.add(bt1); jf.setVisible(true); } }
注册页面中的注册按钮的监听类:
package com.huaxin.login; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; public class Listenerone implements ActionListener{ public ZhuceLisener zhuceLisener; //接受传过来的对象 public Listenerone(ZhuceLisener zhuceLisener) { this.zhuceLisener=zhuceLisener; } public void actionPerformed(ActionEvent e) { //拿到注册页面中输入的信息 String zhucename = zhuceLisener.name.getText(); String zhucepwd = zhuceLisener.password.getText(); //检测用户输入 if(zhucename.equals("")){ JOptionPane.showMessageDialog(null, "请输入用户名!"); }else if(LoginFrame.map.containsKey(zhucename)){ JOptionPane.showMessageDialog(null, "该账号已经存在!"); } else if(zhucepwd.equals("")){ JOptionPane.showMessageDialog(null, "请输入用户密码!"); } else{ //添加新的键值对 LoginFrame.map.put(zhucename, zhucepwd); JOptionPane.showMessageDialog(null, "注册成功!"); //注册页面隐藏 zhuceLisener.jf.setVisible(false); } } }
主函数中的测试类:
package com.huaxin.login; public class test { public static void main(String[] args) { LoginFrame login=new LoginFrame(); login.initFrame(); } }
运行结果:
登录和注册页面
注册功能实现:
新注册用户登录验证:
总结:
1、通过该项目,深入理解Java中的集合框架知识;
2、对对象传递,静态对象的应用以及静态代码块等知识更加熟练了;
3、对写小程序的思路有了提升;发现写程序思路非常的重要,有了思路,写东西会顺畅很多;
相关文章推荐
- Java小程序之集合框架模拟数据库实现用户登录和注册功能
- node.js---study2 连接池连接数据库实现登录注册查询用户的功能---
- 数据库基础入门(四)— — 产品功能实现之数据库架构与用户登录注册
- Java基础知识强化之集合框架笔记37:用户登录注册案例
- JavaDay10--Homework(无数据库实现用户注册、登录)
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能
- java 与数据库连接 实现用户的注册和登录
- Java程序连接oracle数据库,并实现注册与登录功能
- java在线聊天项目1.2版 ——开启多个客户端,分别实现数据库注册和登录功能后,成功登陆则登录框消失,好友列表窗出现
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
- 集合框架_用户登录注册案例详细分析和分包的实现、用户基本描述类和用户操作接口的实现、用户操作类的具体实现、用户测试类的实现、加入猜数字小游戏
- Java实现--登录和注册案例(把用户信息存进集合)
- 使用JFinal框架连接数据库,实现注册、登录功能
- java 与数据库连接 实现用户的注册和登录
- 数据库基础入门(四)— — 产品功能实现之数据库架构与用户登录注册
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应
- 使用JFinal框架连接数据库,实现注册、登录功能
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- 使用Struts 2.0 框架实现用户注册登录模块(数据库校验)
- 用Python实现web端用户登录和注册功能的教程