Java课程设计---实现登录(2)
前面已经完成了登录界面的设计,单击确认按钮可以获取输入的用户名和密码,下面来将演示实现真实的登录(输入值和数据库的比对)
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)的更多相关文章
- Java课程设计---实现登录(1)
1.新建登录窗口类:LoginView.java 以下是自动生成的代码 package com.system.view; import java.awt.BorderLayout; import ja ...
- Java课程设计---索引
一.基础配置 ============================================================== 1.Java课程设计---Eclipse基本环境配置 2.J ...
- Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)
#课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...
- Java 课程设计 "Give it up"小游戏(团队)
JAVA课程设计 "永不言弃"小游戏(From :Niverse) 通过Swing技术创建游戏的登陆注册界面,使用mySQL数据库技术完成用户的各项信息保存和游戏完成后的成绩保存. ...
- Java课程设计—学生成绩管理系统(201521123004-林艺如)
1.团队课程设计博客 团队课程设计博客链接 2.个人负责模块或任务说明 ①.Menu Menu.jsp 在页面中给出提示,用HTML的 MenuTeacher.jsp 利用Menu.jsp进行具体化完 ...
- Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033
Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033 目录 1.项目简介 2.项目采用技术 3.功能需求分析 4.项目亮点 5.项目功能架构图和UML类 ...
- java(课程设计之记事本界面部分代码公布)
代码:涉及记事本的一些界面......!! /* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查 ...
- java课程设计(计算器)
JAVA课程 设 计 报 告 1206401-18 瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...
- Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)
Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...
随机推荐
- 集合框架-Map集合重点方法keySet演示
1 package cn.itcast.p6.map.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import ...
- 不难懂-------git版本回退
1. git log 定义:该命令显示从最近到最远的提交日志.每一次提交都有对应的 commit id 和 commit message. 如果嫌弃输出的信息杂乱无章,那么加上 --pretty= ...
- 利用application在页面中显示访问次数
在jsp页面中实现. <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...
- 《Spring Boot 实战纪实》之过滤器
导航 什么是过滤器 Spring的过滤器 Filter定义 过滤的对象 典型应用 过滤器的使用 Filter生命周期 过滤器链 自定义敏感词过滤器 新增自定义过滤器 添加 @WebFilter注解 添 ...
- 如何使用 numpy 和 pytorch 快速计算 IOU
前言 在目标检测中用交并比(Interection-over-unio,简称 IOU)来衡量两个边界框之间的重叠程度,下面就使用 numpy 和 pytorch 两种框架的矢量计算方式来快速计算各种情 ...
- 「Celeste-B」Say Goodbye
做法一 提供一个后半部分略微不同的做法. 首先,基环旋转同构肯定是用 Burnside 那套理论求不动点来解,设 \(f(n, m)\) 为每种颜色 \(/m\) 构成 \(n\) 棵(树之间有标号) ...
- Redis哨兵模式高可用解决方案
一.序言 Redis高可用有两种模式:哨兵模式和集群模式,本文基于哨兵模式搭建一主两从三哨兵Redis高可用服务. 1.目标与收获 一主两从三哨兵Redis服务,基本能够满足中小型项目的高可用要求,使 ...
- Func<>用法
Func是一个委托,委托里面可以存方法,Func<string,string>或Func<string,string,int,string>等 前几个是输入参数,最后一个是返回 ...
- 各种形式存放token
1.可以将token存储在 localstorage里面,在一个统一的地方复写请求头,让每次请求都在header中带上这个token, 当token失效的时候,后端肯定会返回401,这个时候在你可以在 ...
- RSA公钥加密-私钥解密/私钥加密-公钥解密
package com.tebon.ams.util;import org.apache.commons.codec.binary.Base64;import org.apache.log4j.Log ...