Java实训日志06

news2024/12/23 1:47:08

文章目录

  • 八、项目开发实现步骤
    • (八)创建服务接口
      • 1、创建学校服务接口
      • 2、创建状态服务接口
      • 3、创建学生服务接口
      • 4、创建用户服务接口
    • (九)创建服务接口实现类
      • 1、创建学校服务接口实现类
      • 2、创建状态服务接口实现类
      • 3、创建学生服务接口实现类
      • 4、创建用户服务接口实现类

八、项目开发实现步骤

(八)创建服务接口

  • 服务接口调用数据访问接口,可以添加必要的业务逻辑,而服务接口被控制层调用,获取数据传递给视图层显示。
  • net.huawei.student根包里创建service子包
    在这里插入图片描述

1、创建学校服务接口

  • net.huawei.student.service包里创建CollegeService接口
    在这里插入图片描述
package net.huawei.student.service;

import net.huawei.student.bean.College;

/**
 * 功能:学校服务接口
 * 作者:华卫
 * 日期:2023年06月16日
 */
public interface CollegeService {
    College findCollegeById(int id); // 按标识符查询学校记录
    int updateCollege(College college); // 更新学校记录
}

2、创建状态服务接口

  • net.huawei.student.service包里创建StatusService接口
    在这里插入图片描述
package net.huawei.student.service;

import net.huawei.student.bean.Status;

/**
 * 功能:状态服务接口
 * 作者:华卫
 * 日期:2023年06月16日
 */
public interface StatusService {
    Status findStatusById(int id); // 按标识符查询状态记录
    int updateStatus(Status status); // 更新状态记录
}

3、创建学生服务接口

  • net.huawei.student.service包里创建StudentService接口
    在这里插入图片描述
package net.huawei.student.service;

import net.huawei.student.bean.Student;

import java.util.List;
import java.util.Vector;

/**
 * 功能:学生服务接口
 * 作者:华卫
 * 日期:2023年06月16日
 */
public interface StudentService {
    int addStudent(Student student); // 添加学生记录
    int deleteStudentById(String id); // 按标识符删除学生记录
    int deleteStudentsByClass(String clazz); // 按班级删除学生记录
    int deleteStudentsByDepartment(String department); // 按系部删除学生记录
    int updateStudent(Student student); // 更新学生记录
    Student findStudentById(String id); // 按标识符查询学生记录
    List<Student> findStudentsByName(String name); // 按姓名查询学生记录
    List<Student> findStudentsByClass(String clazz); // 按班级查询学生记录
    List<Student> findStudentsByDepartment(String department); // 按系部查询学生记录
    List<Student> findAllStudents(); // 查询全部学生记录
    Vector findRowsBySex(); // 按性别统计人数
    Vector findRowsByClass(); // 按班级统计人数
    Vector findRowsByDepartment(); // 按系部统计人数
}

4、创建用户服务接口

  • net.huawei.student.service包里创建UserService接口
    在这里插入图片描述
package net.huawei.student.service;

import net.huawei.student.bean.User;

import java.util.List;

/**
 * 功能:用户服务接口
 * 作者:华卫
 * 日期:2023年06月16日
 */
public interface UserService {
    int addUser(User user); // 添加用户记录
    int deleteUserById(int id); // 按标识符删除用户记录
    int updateUser(User user); // 更新用户记录
    User findUserById(int id); // 按标识符查询用户记录
    List<User> findAllUsers(); // 查询全部用户记录
    User login(String username, String password); // 登录方法
    boolean isUsernameExisted(String username); // 用户名是否存在
}

(九)创建服务接口实现类

  • net.huawei.student.service包里创建impl子包
    在这里插入图片描述

1、创建学校服务接口实现类

  • net.huawei.student.service.impl包里创建CollegeServiceImpl
    在这里插入图片描述
  • 实现CollegeService接口,空实现所有抽象方法
    在这里插入图片描述
package net.huawei.student.service.impl;

import net.huawei.student.bean.College;
import net.huawei.student.dao.CollegeDao;
import net.huawei.student.dao.impl.CollegeDaoImpl;
import net.huawei.student.service.CollegeService;

/**
 * 功能:学校服务接口实现类
 * 作者:华卫
 * 日期:2023年06月16日
 */
public class CollegeServiceImpl implements CollegeService {

    private CollegeDao collegeDao = new CollegeDaoImpl();

    @Override
    public College findCollegeById(int id) {        
        return collegeDao.findById(id);
    }

    @Override
    public int updateCollege(College college) {
        return collegeDao.update(college);
    }
}

2、创建状态服务接口实现类

  • net.huawei.student.service.impl包里创建StatusServiceImpl
    在这里插入图片描述
  • 实现StatusService接口,空实现所有抽象方法
    在这里插入图片描述
package net.huawei.student.service.impl;

import net.huawei.student.bean.Status;
import net.huawei.student.dao.StatusDao;
import net.huawei.student.dao.impl.StatusDaoImpl;
import net.huawei.student.service.StatusService;

/**
 * 功能:状态服务接口实现类
 * 作者:华卫
 * 日期:2023年06月16日
 */
public class StatusServiceImpl implements StatusService {
    
    private StatusDao statusDao = new StatusDaoImpl();

    @Override
    public Status findStatusById(int id) {
        return statusDao.findById(id);
    }

    @Override
    public int updateStatus(Status status) {
        return statusDao.update(status);
    }
}

3、创建学生服务接口实现类

  • net.huawei.student.service.impl包里创建StudentServiceImpl
    在这里插入图片描述
  • 实现StudentService接口,空实现所有抽象方法
    在这里插入图片描述
package net.huawei.student.service.impl;

import net.huawei.student.bean.Student;
import net.huawei.student.dao.StudentDao;
import net.huawei.student.dao.impl.StudentDaoImpl;
import net.huawei.student.service.StudentService;

import java.util.List;
import java.util.Vector;

/**
 * 功能:学生服务接口实现类
 * 作者:华卫
 * 日期:2023年06月16日
 */
public class StudentServiceImpl implements StudentService {
    
    private StudentDao studentDao = new StudentDaoImpl();
    
    @Override
    public int addStudent(Student student) {
        return studentDao.insert(student);
    }

    @Override
    public int deleteStudentById(String id) {
        return studentDao.deleteById(id);
    }

    @Override
    public int deleteStudentsByClass(String clazz) {
        return studentDao.deleteByClass(clazz);
    }

    @Override
    public int deleteStudentsByDepartment(String department) {
        return studentDao.deleteByDepartment(department);
    }

    @Override
    public int updateStudent(Student student) {
        return studentDao.update(student);
    }

    @Override
    public Student findStudentById(String id) {
        return studentDao.findById(id);
    }

    @Override
    public List<Student> findStudentsByName(String name) {
        return studentDao.findByName(name);
    }

    @Override
    public List<Student> findStudentsByClass(String clazz) {
        return studentDao.findByClass(clazz);
    }

    @Override
    public List<Student> findStudentsByDepartment(String department) {
        return studentDao.findByDepartment(department);
    }

    @Override
    public List<Student> findAllStudents() {
        return studentDao.findAll();
    }

    @Override
    public Vector findRowsBySex() {
        return studentDao.findRowsBySex();
    }

    @Override
    public Vector findRowsByClass() {
        return studentDao.findRowsByClass();
    }

    @Override
    public Vector findRowsByDepartment() {
        return studentDao.findRowsByDepartment();
    }
}

4、创建用户服务接口实现类

  • net.huawei.student.service.impl包里创建UserServiceImpl
    在这里插入图片描述
  • 实现UserService接口,空实现所有抽象方法
    在这里插入图片描述
package net.huawei.student.service.impl;

import net.huawei.student.bean.User;
import net.huawei.student.dao.UserDao;
import net.huawei.student.dao.impl.UserDaoImpl;
import net.huawei.student.service.UserService;

import java.util.List;

/**
 * 功能:用户服务接口实现类
 * 作者:华卫
 * 日期:2023年06月16日
 */
public class UserServiceImpl implements UserService {
    
    private UserDao userDao = new UserDaoImpl();
    
    @Override
    public int addUser(User user) {
        return userDao.insert(user);
    }

    @Override
    public int deleteUserById(int id) {
        return userDao.deleteById(id);
    }

    @Override
    public int updateUser(User user) {
        return userDao.update(user);
    }

    @Override
    public User findUserById(int id) {
        return userDao.findById(id);
    }

    @Override
    public List<User> findAllUsers() {
        return userDao.findAll();
    }

    @Override
    public User login(String username, String password) {
        return userDao.login(username, password);
    }

    @Override
    public boolean isUsernameExisted(String username) {
        return userDao.isUsernameExisted(username);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/652813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CMake 入门与进阶(10)】 CMakeLists.txt 语法规则_循环语句(附使用代码)

cmake 中除了 if 条件判断之外&#xff0c;还支持循环语句&#xff0c;包括 foreach()循环、while()循环。 foreach 循环 1、foreach 基本用法 foreach 循环的基本用法如下所示&#xff1a; foreach(loop_var arg1 arg2 ...)command1(args ...)command2(args ...)... endfore…

chatgpt赋能python:Python编写计算器的方法

Python编写计算器的方法 介绍 计算器是一款常见的实用工具&#xff0c;它能够进行基本的算数运算&#xff0c;如加减乘除等。在Python中&#xff0c;我们可以利用各种库和函数来实现计算器的功能&#xff0c;从而方便地进行数值计算。 怎么编写计算器 在Python中&#xff0…

WINS服务的作用和效率

WINS服务的作用和效率 目录 WINS服务的作用和效率 一、WINS服务 二、配置 2.1、服务端 2.2、客户端 2.3、配置方法 三、效果 3.1、计算机-网络&#xff08;过去的“网上邻居”&#xff09; 3.2、局域网打印机共享 3.3、基于NetBios名称的数据库客户端连接 一、WINS服…

爆肝万字带你超级详细全面了解Linux命令大全

&#x1f341;前言 &#x1f451;作者主页&#xff1a;&#x1f449;CSDN丨博客园 &#x1f3c6;学习交流&#xff1a;&#x1f449;在下周周ovoの社区 对这篇万字博客目录总结如下&#xff1a; 关机命令、重启命令&#xff0c;创建用户、删除用户、修改密码、切换用户、切换到…

Centos8 如何给磁盘扩容

今天发现 在home目录下无法写入文件&#xff0c;经过查看磁盘空间&#xff0c;发现/dev/mapper/cl-home空间满了。于是乎&#xff0c;给磁盘进行扩容&#xff0c;扩充成功&#xff0c;下面将操作步骤分享出来。 查看空间 [rootasrcent8 ~]# df -k 文件系统 1K…

jsp与java bean

软件开发应具有较高的可维护性&#xff0c;以方便后续的代码维护&#xff0c;而实现高可维护性的有效途径是要实现软件的低耦合、高内聚。软件设计分层的概念主要就是将软件各部分进行解耦合设计&#xff0c;对于JSP动态开发技术而言&#xff0c; JavaBean是最基础的分层技术。…

Java集合框架:栈、Stack详解

目录 一、栈 二、栈的使用 1. Stack类 2. 栈的模拟实现 三、栈的应用场景 1. 改变元素的序列 2. 将递归转化为循环&#xff08;如&#xff1a;逆序打印链表&#xff09; 3. 栈的oj题练习&#xff08;oj题中都用到了栈这种数据结构&#xff09; 四、栈&#xff0c;虚拟机…

Stable diffusion webui 本地安装教学

Stable diffusion AI的绘图工具&#xff0c;这是一种扩散模型&#xff0c;可以通过不断去噪来获得最终的艺术作品。这款工具是当前最受欢迎的AI绘图工具之一&#xff0c;不仅是还是开源的&#xff0c;而且其中的AUTOMATIC111 Stable-diffusion-webui版本深受AI绘图玩家的喜爱&a…

三、Docker的基本组成和常用命令(一)

文章目录 Docker的基本组成镜像(image)容器(container)仓库(repository)总结 Docker的常用命令帮助命令镜像命令docker imagesdocker searchdocker pulldocker rmi Docker的基本组成 镜像(image) Docker 镜像&#xff08;Image&#xff09;就是一个只读的模板。镜像可以用来创…

用Netty自己实现Dubbo RPC

1.RPC基本介绍 1>.RPC(Remote Procedure Call)— 远程过程调用,是一个计算机通信协议.该协议允许运行在一台计算机中的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程; 2>.两个或多个应用程序都分布在不同的服务器上,它们之间的调用都像是本地方法…

跟着《代码随想录》练习代码

更新中。。。有错误请指正 数组 二分查找704 class Solution:def search(self,nums:list,target:int)->int:left 0right len(nums)-1while left<right:mid (leftright)//2guess nums[mid]if guess target:return midbreakelif guess > target:right mid -1els…

浅析浏览器的缓存

随着浏览器功能的日益强大&#xff0c;在工作中&#xff0c;浏览器是前端工程师们最重要的战友和开发调试工具&#xff0c;它承载着用户最舒适的用户体验&#xff0c;ui最佳的设计成果展示&#xff0c;后台数据最直观的展示。因此&#xff0c;对浏览器的认识和理解起到举足轻重…

使用pipe、select实现线程间通信和性能测试

一 代码实现 理论依据&#xff1a; 管道中无数据时&#xff0c;读阻塞。 写数据时&#xff0c;长度小于PIPE_BUF时&#xff0c;写数据是原子操作&#xff0c;这样不会出现写一半的情况。在我的虚拟机上PIPE_BUF的值是4096&#xff0c;在标准中linux系统中该值都是4096. 测试代…

小型极简主义 Linux 发行版:Peropesis

导读Peropesis 是 personal operating system 的转写简拼&#xff0c;一个小型、极简主义、基于命令行的 Linux 操作系统。目前仍是一个不完整的系统&#xff0c;但它正在不断改进。 此外&#xff0c;它是一个由自由软件创建的自由操作系统&#xff0c;在 GNU GPL 或 BSD 许可下…

csdn编辑模式

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

非授权访问测试-业务安全测试实操(9)

非授权访问测试, 越权测试 非授权访问测试 测试原理和方法 非授权访问是指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问到的页面或文本信息。可以尝试在登录某网站前台或后台之后,将相关的页面链接复制到其他浏览器或其他电脑上进行访问,观察是否能访…

第二届BSN全球技术创新发展峰会在武汉成功举行

6月9日&#xff0c;由湖北省人民政府指导&#xff0c;湖北省发展改革委、国家信息中心联合主办&#xff0c;中国移动、中国电信、中国联通、武汉市江汉区人民政府、区块链服务网络&#xff08;BSN&#xff09;发展联盟、湖北省楚天云公司承办的第二届区块链服务网络&#xff08…

汽车功能安全中CPU lockstep技术浅析

知识的价值在于分享&#xff0c;欢迎大家批评指正&#xff0c;共同进步。 目录 1 功能安全 2 技术特性 3 安全系统架构 4 TI Hercules系列 4.1 TMS570安全概念基本原理 4.1.1 1oo1D双核安全概念 4.1.2 1oo1D优势 总结 参考文献 1 功能安全 根据ISO26262-2018&#xff0…

CVPR 2023 | 计算机视觉顶会亮点前瞻

在知识和技术都迅速更新迭代的计算机领域中&#xff0c;国际计算机视觉与模式识别会议&#xff08;CVPR&#xff09;是计算机视觉方向的“顶级流量”&#xff0c;引领着学科及相关领域的研究潮流。今天我们为大家带来5篇微软亚洲研究院被 CVPR 2023 收录的论文&#xff0c;主题…

【Linux】MySQL数据库 (一)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 MySQL数据库 一、数据库的基本概念二、数据库系统发展史1.第一代数据库2.第二代数据库3.第三代数据库 三、当今主流数据库介绍1.关系数据库2.非关系数据库 四、MySQL数据库管…