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

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. (2)puppet单机测试命令apply

    单机测试apply命令: 以独立的方式,将清单中的配置应用于本机,也就是说,根据配置清单配置当前服务器. 1.apply这个子命令有很多选项,而我们常用的有debug.verbose.noop等,de ...

  2. 【Azure Developer】使用 Azure Python SDK时,遇见 The resource principal named https://management.azure.com was not found in the tenant China Azure问题的解决办法

    问题描述 在使用Python SDK时候,登录到China Azure (Mooncake)并访问AlertsManagement资源时候,时常遇见  EnvironmentCredential: A ...

  3. lambda表达式的学习

    Lambda表达式 为什么使用lambda表达式 Lambda表达式可以简化我们的代码,使我们只需要关注主要的代码就可以. //测试用的实体类 public class Employee { priv ...

  4. Spring @SessionAttributes注解 @ModelAttribute注解

    一.@SessionAttribute详解 如果多个请求之间需要共享数据,就可以使用@SessionAttribute. 配置的方法: 在控制器类上标注@SessionAttribute. 配置需要共 ...

  5. Hbase 项目

     需求分析 1) 微博内容的浏览,数据库表设计 2) 用户社交体现:关注用户,取关用户 3) 拉取关注的人的微博内容 表结构 代码实现 1) 创建命名空间以及表名的定义 2) 创建微博内容表 3) 创 ...

  6. 使用Hot Chocolate和.NET 6构建GraphQL应用(6) —— 实现Query排序功能

    系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 从前几篇文章可以看出,使用Hot Chocolate实现GraphQL接口是比较简单的,本篇文章我们继续查询 ...

  7. [NOI2020]命运

    显然直接计数是不好计的,只能从 \(dp\) 这个角度来下手. 首先用最原始最直接的方法,直接在 \(dp\) 的过程中满足题目的要求. 既然问题给在一棵树上,那么必然和树脱不了关系,因此我们应该从树 ...

  8. nested exception is java.lang.NoClassDefFoundError: org/fusesource/hawtbuf/UTF8Buffer

    前言:IDE管理maven项目,总是遇到各种莫名奇妙的问题,有的是导入了依赖,IDE确报包未找到,有的是IDE显示找到,但是控制台确报未找到,有以下几种方法可以解决 第一:确认自己导入的依赖是否有问题 ...

  9. FastJSON解析Json字符串(反序列化为List、Map)

    在日常开发与数据库打交道的时候,常有以Json格式的字符串存储到数据库的情况,当在Java程序中获取到对应的Json格式的String字符串后,如何才能转换为我们想要的数据格式(比如转换成Java中的 ...

  10. ajax请求egg用nginx转发跨域问题

    火狐浏览器报的 谷歌浏览器报的 前提: npm i egg-cors --save config 文件下的pulgin.js 已经添加 //启用跨域支持 exports.cors = { enable ...