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

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. java-导入import

    1 package face_package; 2 3 import face_packagedemoA.DemoA; 4 import face_packagedemoB.DemoB; 5 //真正 ...

  2. 不难懂——th: 的常用标签

    关键字>       功能介绍    >      案例 th:id 替换id <input th:id="'xxx' + ${collect.id}"/> ...

  3. JavaScript之详述闭包导致的内存泄露

    一.内存泄露 1. 定义:一块被分配的内存既不能使用,也不能回收.从而影响性能,甚至导致程序崩溃. 2. 起因:JavaScript的垃圾自动回收机制会按一定的策略找出那些不再继续使用的变量,释放其占 ...

  4. C++ 反汇编:关于Switch语句的优化措施

    流程控制语句是C语言中最基本的判断语句,通常我们可以使用IF来构建多分支结构,但同样可以使用Switch语句构建,Switch语句针对多分支的优化措施有4种形式,分别是,IF-ELSE优化,有序线性优 ...

  5. 学习JAVAWEB第十七天

    今天还是在做登陆界面,做到后台servlet了 知识点太不熟练了,还得继续做

  6. Mac iterm2 配色以及终端大小写敏感解决方案

    iterm2是mac下非常好用的一款终端.但默认的配色实在不好用,经过一翻搜索终于找到了比较满意的,以下贴出博主的解决方案 配色 首先修改 ~/.bash_profile 加入一下代码 #enable ...

  7. Pandas 秘籍·翻译完成

    协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 ...

  8. art 模式 android runtime

    空间换时间的概念. art:程序在安装时需要预编译读取,将代码转换为机器码 好处:程序运行时,无需时时转换,运行速度快 : 缺点:安装时间稍长,由于转换机器码,所以占用略高的存储空间.

  9. python使用插入法实现链表反转

    # encoding=utf-8 class LNode(object): def __init__(self, x): self.data = x self.next = None def reve ...

  10. Redis高可用(持久化、主从复制、哨兵、集群)

    Redis高可用(持久化.主从复制.哨兵.集群) 目录 Redis高可用(持久化.主从复制.哨兵.集群) 一.Redis高可用 1. Redis高可用概述 2. Redis高可用策略 二.Redis持 ...