前面已经完成了登录界面的设计,单击确认按钮可以获取输入的用户名和密码,下面来将演示实现真实的登录(输入值和数据库的比对)

1、设计“登录服务”

  通常我们根据业务关系,对相应的操作人员提供对外的各种服务,下面创建一个管理员服务类AdminService

  AdminService.java(定义服务,方法实现下面补充)

package com.demo.service;
/*
* 项目名称:
*
* 文件名称为:AdminService.java
* 文件创建人:daxiang
*
* @author daxiang
* @version
* @time 2018年6月13日 下午10:04:15
* @copyright daxiang
*/
public class AdminService {
/**
* 登录服务
*
* @param id
* @param pwd
* @return 1、成功 2、用户名错误 3、密码错误
*/
public int login(String id, String pwd) {
return 0;
} /**
* 修改密码服务
*
* @param id
* @param pwd
* @param newpwd
* @return false 修改失败 true 修改成功
*/
public boolean changePwd(String id, String pwd, String newpwd) {
return false;
}
}

2、为登录服务提供数据库查询操作

  在第一节中为管理员提供了两种服务1、登录 2、修改密码,但并未实现具体过程,下面来完成登录服务的具体过程。

  要判断用户是否能成功登录需要两步

  (1)根据输入的用户名查询数据库中是否有该用户

  (2)如存在该用户则比对输入的密码是否和数据库中存储的密码相同

 新建一个Admin实体数据库操作类,利用dbutil工具实现查询

AdminDao.java

package com.demo.dao;

import java.sql.ResultSet;

import com.demo.model.Admin;
import com.demo.util.DbUtil; /*
* 项目名称:
*
* 文件名称为:AdminDao.java
* 文件创建人:daxiang
*
* 修改记录:
* 修改人 修改日期 备注
*
*
*
* @author daxiang
* @version
* @time 2018年6月13日 下午10:25:06
* @copyright daxiang
*/
public class AdminDao { public Admin query(String username) throws Exception {
// 实例化操作类
DbUtil dbUtil = new DbUtil();
// 查询语句,由于username是字符串,所以需要username='" + username+"'"这样拼接
String sql = "select * from admin where username='" + username+"'";
// 执行查询
ResultSet rs = dbUtil.query(sql);
// 创建null的admin对象
Admin admin = null;
// 判断是否有结果,并循环
while (rs.next()) {
// new一个新对象赋值给admin
admin = new Admin();
// 给对象赋值
admin.setId(rs.getInt("id"));
admin.setUsername(rs.getString("username"));
admin.setPassword(rs.getString("password"));
}
// 返回查询结果
return admin;
}
}

  

  下面完善AdminService中的登录服务

  

package com.demo.service;

import com.demo.dao.AdminDao;
import com.demo.model.Admin; /*
* 项目名称:
*
* 文件名称为:AdminService.java
* 文件创建人:daxiang
*
* @author daxiang
* @version
* @time 2018年6月13日 下午10:04:15
* @copyright daxiang
*/
public class AdminService {
/**
* 登录服务
*
* @param id
* @param pwd
* @return 1、成功 2、用户名错误 3、密码错误
* @throws Exception
*/
public int login(String username, String pwd) throws Exception {
// 新建admin数据库操作对象
AdminDao adminDao = new AdminDao();
// 1、根据输入的用户名查询数据库中是否有该用户
Admin admin = adminDao.query(username);
// 判断查询出的用户是否存在
if (admin != null) {
//2、比对输入的密码是否和数据库中存储的密码相同
if (admin.getPassword().equals(pwd)) {
// 返回成功的代码
return 1;
}
// 返回密码错误的代码
return 3;
}
// 返回用户名错误的代码
return 2;
} /**
* 修改密码服务
*
* @param id
* @param pwd
* @param newpwd
* @return false 修改失败 true 修改成功
*/
public boolean changePwd(String id, String pwd, String newpwd) {
return false;
}
}

  修改LoginView中的处理

		button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
// 获取管理员操作服务
AdminService adminService = new AdminService();
// 处理登录
int i = adminService.login(textField.getText(), new String(
passwordField.getPassword()));
//显示各种结果
switch (i) {
case 1:
JOptionPane.showMessageDialog(null, "登录成功");
// 释放屏幕资源
dispose();
// 打开主界面
new MainView();
break;
case 2:
JOptionPane.showMessageDialog(null, "用户名错误!");
break;
case 3:
JOptionPane.showMessageDialog(null, "密码错误!");
break;
default:
break;
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
});

截图

  用户名错误

  密码错误

  

  登录成功

  

Java课程设计---实现登录(2)的更多相关文章

  1. Java课程设计---实现登录(1)

    1.新建登录窗口类:LoginView.java 以下是自动生成的代码 package com.system.view; import java.awt.BorderLayout; import ja ...

  2. Java课程设计---索引

    一.基础配置 ============================================================== 1.Java课程设计---Eclipse基本环境配置 2.J ...

  3. Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)

    #课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...

  4. Java 课程设计 "Give it up"小游戏(团队)

    JAVA课程设计 "永不言弃"小游戏(From :Niverse) 通过Swing技术创建游戏的登陆注册界面,使用mySQL数据库技术完成用户的各项信息保存和游戏完成后的成绩保存. ...

  5. Java课程设计—学生成绩管理系统(201521123004-林艺如)

    1.团队课程设计博客 团队课程设计博客链接 2.个人负责模块或任务说明 ①.Menu Menu.jsp 在页面中给出提示,用HTML的 MenuTeacher.jsp 利用Menu.jsp进行具体化完 ...

  6. Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033

    Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033 目录 1.项目简介 2.项目采用技术 3.功能需求分析 4.项目亮点 5.项目功能架构图和UML类 ...

  7. java(课程设计之记事本界面部分代码公布)

    代码:涉及记事本的一些界面......!! /* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查 ...

  8. java课程设计(计算器)

    JAVA课程 设 计 报 告 1206401-18   瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...

  9. Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)

    Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...

随机推荐

  1. 集合框架-Map集合重点方法keySet演示

    1 package cn.itcast.p6.map.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import ...

  2. 不难懂-------git版本回退

    1. git log 定义:该命令显示从最近到最远的提交日志.每一次提交都有对应的 commit id 和 commit message.   如果嫌弃输出的信息杂乱无章,那么加上 --pretty= ...

  3. 利用application在页面中显示访问次数

    在jsp页面中实现. <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...

  4. 《Spring Boot 实战纪实》之过滤器

    导航 什么是过滤器 Spring的过滤器 Filter定义 过滤的对象 典型应用 过滤器的使用 Filter生命周期 过滤器链 自定义敏感词过滤器 新增自定义过滤器 添加 @WebFilter注解 添 ...

  5. 如何使用 numpy 和 pytorch 快速计算 IOU

    前言 在目标检测中用交并比(Interection-over-unio,简称 IOU)来衡量两个边界框之间的重叠程度,下面就使用 numpy 和 pytorch 两种框架的矢量计算方式来快速计算各种情 ...

  6. 「Celeste-B」Say Goodbye

    做法一 提供一个后半部分略微不同的做法. 首先,基环旋转同构肯定是用 Burnside 那套理论求不动点来解,设 \(f(n, m)\) 为每种颜色 \(/m\) 构成 \(n\) 棵(树之间有标号) ...

  7. Redis哨兵模式高可用解决方案

    一.序言 Redis高可用有两种模式:哨兵模式和集群模式,本文基于哨兵模式搭建一主两从三哨兵Redis高可用服务. 1.目标与收获 一主两从三哨兵Redis服务,基本能够满足中小型项目的高可用要求,使 ...

  8. Func<>用法

    Func是一个委托,委托里面可以存方法,Func<string,string>或Func<string,string,int,string>等 前几个是输入参数,最后一个是返回 ...

  9. 各种形式存放token

    1.可以将token存储在 localstorage里面,在一个统一的地方复写请求头,让每次请求都在header中带上这个token, 当token失效的时候,后端肯定会返回401,这个时候在你可以在 ...

  10. RSA公钥加密-私钥解密/私钥加密-公钥解密

    package com.tebon.ams.util;import org.apache.commons.codec.binary.Base64;import org.apache.log4j.Log ...