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

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. 从容器中获取宿主机IP地址

    背景: docker 中的程序需要连接外部的程序,连接的过程中会告知外部程序自己的ip地址,然后外部的程序会回连docker中的程序.由于docker使用的是rancher中的托管模式,外部程序是没办 ...

  2. Java多线程专题1: 并发与并行的基础概念

    合集目录 Java多线程专题1: 并发与并行的基础概念 什么是多线程并发和并行? 并发: Concurrency 特指单核可以处理多任务, 这种机制主要实现于操作系统层面, 用于充分利用单CPU的性能 ...

  3. CKKS Part4: CKKS的乘法和重线性化

    本文翻译于CKKS EXPLAINED, PART 4: MULTIPLICATION AND RELINEARIZATION,主要介绍CKKS方案中的密文乘法和重线性化技术 介绍 在上一篇 CKKS ...

  4. php include,require,include_once,require_once 的区别

    include(),require(),include_once(),require_once()作用都是包含并运行指定文件,但是使用场景又有很大区别. 1.include()和require()的区 ...

  5. Linux下Mysql报错

    报错内容为:[mysql]ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/ ...

  6. Linux发行版·常见Linux系统下载

    本专题页汇总最受欢迎的Linux发行版基本介绍和下载地址,如果您是一位刚接触Linux的新手,这里的介绍可能对您有所帮助,如果您是以为Linux使用前辈,也可以在评论处留下您宝贵意见和经验,以便让更多 ...

  7. JAVA! static的作用

    是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只 ...

  8. pyrealsense2学习

    如何得到realsense设备信息 前提:将D455连接在电脑上,并且已经下载好 Realsense Viewer 打开Realsense Viewer--> Info, 便可得到相机的一些参数 ...

  9. DAG(有向无环图)技术

    什么是DAG? DAG的全称为"Directed Acyclic Graph",中文意思为:有向无环图,它由有限个顶点和"有向边"组成,从任意顶点出发,经过若干 ...

  10. P1015 [NOIP1999 普及组] 回文数

    点击查看题目 题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 ...