项目分层--简单图书管理系统

分层情况

实体类Book代码 

//实体类
public class Book {private int id;private String name;private int bsum;public Book() {}public Book(int id, String name, int bsum) {this.id = id;this.name = name;this.bsum = bsum;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getBsum() {return bsum;}public void setBsum(int bsum) {this.bsum = bsum;}@Overridepublic String toString() {return "Book{" +"id=" + id +", name='" + name + '\'' +", bsum=" + bsum +'}';}
}

控制层BookController代码

import com.xszx.beans.Book;
import com.xszx.service.BookService;
import com.xszx.service.impl.BookServiceImpl;import java.util.List;
import java.util.Scanner;//控制层  控制请求转发
public class BookController {Scanner sc=new Scanner(System.in);BookService bookService = new BookServiceImpl();//主方法public void menu(){System.out.println();System.out.println("                     ---小张图书管理系统---                          ");System.out.println("***【1】查看图书列表 【2】添加图书 【3】修改图书 【4】删除图书 【0】退出系统***");System.out.println("请选择您要进行的操作:");int n = sc.nextInt();if(n==1){checkBook();menu();}else if (n==2){addBook();menu();}else if(n==3){alterBook();menu();}else if (n==4){deleteBook();menu();}else if(n==0){System.out.println("系统已退出,欢迎下次使用!!!");System.exit(0);}}//删除图书private void deleteBook() {Book book = new Book();System.out.println("请输入您要删除的图书名称:");book.setName(sc.next());//判断名字是否存在 存在则删除 不存在则提示不存在boolean b=bookService.getbookname(book);if(b){bookService.deleteBook(book);System.out.println("删除成功!");} else{System.out.println("您要删除的图书不存在!");menu();}}//修改图书private void alterBook() {Book book = new Book();System.out.println("请输入您要修改的图书名称:");book.setName(sc.next());//判断名字是否存在 存在则继续修改 不存在则提示不存在boolean b=bookService.getbookname(book);if(b){Book book1 = new Book();System.out.println("请输入修改后的图书名称:");book1.setName(sc.next());System.out.println("请输入修改后的图书库存:");book1.setBsum(sc.nextInt());bookService.alterBook(book,book1);System.out.println("修改成功!");} else{System.out.println("您要修改的图书不存在!");menu();}}//增加图书private void addBook() {Book book = new Book();System.out.println("请输入您要添加的图书名称:");book.setName(sc.next());//判断名字是否存在 存在则提示名字冲突 不存在则继续执行boolean b=bookService.getbookname(book);if(b){System.out.println("添加的图书名字冲突");menu();}else{System.out.println("请输入您要添加的图书库存:");book.setBsum(sc.nextInt());//后台添加完成,是否成功int i = bookService.addbook(book);if (i==1){System.out.println("添加成功!!!");menu();}else{System.out.println("添加失败!!!");menu();}}}//查看图书private void checkBook() {List<Book> list = bookService.getbook();for (Book book : list){System.out.println(book);}menu();}
}

数据层BookDao代码

import com.xszx.beans.Book;import java.util.ArrayList;
import java.util.List;//数据层   连接数据库  处理数据  写sql   后期为接口
public class BookDao {static List<Book> blist=new ArrayList<>();static{blist.add(new Book(1,"三国",666));blist.add(new Book(2,"水浒",888));blist.add(new Book(3,"红楼梦",999));blist.add(new Book(4,"西游记",222));blist.add(new Book(5,"宝莲灯",333));}public List<Book> getbooks() {return blist;}public int addbook(Book book) {int id = blist.get(0).getId();//查找最大值for (Book bk : blist){if (id<bk.getId()){id=bk.getId();}}book.setId(id+1);blist.add(book);return 1;}//判断名字是否存在public boolean getbookname(Book book) {for (Book bk : blist){if(bk.getName().equals(book.getName())){return true;}}return false;}public void alterBook(Book book, Book book1) {for (Book bk : blist){//修改参数if(bk.getName().equals(book.getName())){bk.setName(book1.getName());bk.setBsum(book1.getBsum());}}}public void deleteBook(Book book) {for (Book bk : blist){//删除元素if(bk.getName().equals(book.getName())){blist.remove(bk);break;}}}
}

 业务层接口BookService代码

import com.xszx.beans.Book;import java.util.List;//业务层  处理业务
public interface BookService {List<Book> getbook();int addbook(Book book);boolean getbookname(Book book);void alterBook(Book book, Book book1);void deleteBook(Book book);
}

 业务层实现类BookServiceImpl代码

import com.xszx.beans.Book;
import com.xszx.dao.BookDao;
import com.xszx.service.BookService;import java.util.List;public class BookServiceImpl implements BookService {BookDao bookDao = new BookDao();@Overridepublic List<Book> getbook() {return bookDao.getbooks();}@Overridepublic int addbook(Book book) {return bookDao.addbook(book);}@Overridepublic boolean getbookname(Book book) {return bookDao.getbookname(book);}@Overridepublic void alterBook(Book book, Book book1) {bookDao.alterBook(book, book1);}@Overridepublic void deleteBook(Book book) {bookDao.deleteBook(book);}
}

测试类Test代码 

import com.xszx.controller.UserController;//测试类
public class Test {public static void main(String[] args) {System.out.println("欢迎来到小张图书管理系统!!!");new UserController().menu();}
}

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

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

相关文章

9. Revit API UI: UIView、UIDocument、框选聚焦

9. Revit API UI: UIView、UIDocument、框选聚焦 UI命名空间下的API&#xff0c;到这里差不多就押送讲完了&#xff0c;同Application那篇所讲的几个类与接口&#xff0c;都是带UI的对应了一个不带UI的&#xff0c;如UIApplication和Application&#xff0c;作用呢&#xff0c…

Jenkins 下使用 Node 和 Npm(借助 nvm-wrapper 插件)构建前端程序

一、前言 搭建完Jenkins后&#xff0c;如何使用node进行构建前端呢&#xff0c;多个项目会使用的node的多个版本。如何动态指定node的版本进行构建呢。 方案一&#xff1a; 安装多个node版本&#xff0c;然后进行指定。这样比较麻烦。 方案二&#xff1a; 使用Jenkins的nv…

Spring相关面试题(三)

29 如何在所有的BeanDefinition注册完成后&#xff0c;进行扩展 Bean工厂的后置处理器&#xff0c;在所有的Bean注册完成后&#xff0c;就被执行。 public class A implements BeanFactoryPostProcessor {private String name "a class";private B b; ​public St…

ARM芯片架构(RTOS)

前言&#xff1a;笔记韦东山老师的rtos教程&#xff0c;连接放在最后 #ARM介绍 arm芯片属于精简指令集risc&#xff0c;所用的指令比较简单&#xff0c;ARM架构是一种精简指令集&#xff08;RISC&#xff09;架构&#xff0c;广泛应用于移动设备、嵌入式系统、物联网等领域。AR…

2. jenkins发布java项目

jenkins发布java项目 一、环境描述二、部署tomcat业务服务器三、部署git服务器&#xff0c;上传测试代码1、部署git服务器2、上传测试代码 四、jenkins对接组件1、安装必要的插件2、对接git客户端3、对接maven工具4、配置maven需要的jdk5、配置gitlab服务器的连接6、在jenkins上…

【Django】网上蛋糕项目商城-首页

概念 本文在上一文章搭建完数据库&#xff0c;以及创建好项目之后&#xff0c;以及前端静态文件后&#xff0c;对项目的首页功能开发。 后端代码编写 这里我们使用pymysql模块对数据库进行操作&#xff0c;获取数据。因此需要在dos窗口使用以下指令下载该库文件 pip instal…

新型发电系统——光伏行业推动能源转型

一、发展背景 “十四五”期间&#xff0c;随着“双碳”目标提出及逐步落实&#xff0c;本就呈现出较好发展势头的分布式光伏发展有望大幅提速。就“十四五”光伏发展规划&#xff0c;国家发改委能源研究所可再生能源发展中心副主任陶冶表示&#xff0c;“双碳”目标意味着国家…

MySQL改密

这里写目录标题 更改登录密码&#xff1a;有权限账号能登录mysql中&#xff1a;有权限账号不能登录mysql中&#xff1a;mysql5.6版本命令mysql5.7版本命令修改密码8.0版本改完后&#xff1a; mysql登录不上了本机安装了5.6后&#xff0c;又安装了mysql8.0 更改登录密码&#xf…

易查分小程序丨查询开始和截止时间如何设置?

老师在发布查询时&#xff0c;希望让学生家长在指定的时间段才能查询&#xff0c;应该如何实现&#xff1f; 通过查询时段功能&#xff0c;老师可以自主设置查询开始和截止时间&#xff0c;下面就来教给大家如何使用吧&#xff01; 设置查询时段演示效果 &#x1f4cc;使用教程…

ASP.NETMVC-简单例子-数据库查询+razor使用+项目发布

环境&#xff1a; win10&#xff0c;SQL Server 2008 R2 参考&#xff1a; asp.net mvc框架之EF的使用 - black娃 - 博客园 https://www.cnblogs.com/fjiqiang/p/11131365.html 目录 数据库查询要求思路操作 razor使用项目发布要求实现 数据库查询 要求 从服务器的数据库中查…

干货分享 | 学会这7个工具方法,数字化转型规划不是难题

提到数字化转型&#xff0c;首要做的便是分析企业现有的业务流程和价值流&#xff0c;发现企业利润来源的关键点&#xff0c;进而有针对性的数字化转型。要实现传统业务向数字化业务的转变&#xff0c;制定出高效、灵活的业务流程优化策略显得至关重要&#xff0c;这样才能找到…

LED裸眼3D显示屏:开启视觉新体验

随着科技的不断进步&#xff0c;LED显示屏作为一种新型的显示技术&#xff0c;已经被广泛应用于各个领域。而其中&#xff0c;LED裸眼3D显示屏更是因其独特的技术原理和令人震撼的视觉效果&#xff0c;成为了业界关注的焦点。 裸眼3D显示屏是一种前沿的显示技术&#xff0c;它…

Java | Leetcode Java题解之第201题数字范围按位与

题目&#xff1a; 题解&#xff1a; class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) {// 抹去最右边的 1n n & (n - 1);}return n;} }

获取当前操作系统的名称platform.system()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 获取当前操作系统的名称 platform.system() [太阳]选择题 在Python中&#xff0c;platform.system() 函数被用来获取什么信息&#xff1f; import platform print("【执行】platform.s…

05 threeJs基础---阵列立方体和相机适配体验立方体

1.增加相机视角fov 注&#xff1a; 范围更大&#xff0c;意味着可以看到渲染范围更大&#xff0c;远小近大的视觉效果更明显 fov:眼球张开的角度&#xff0c;0时相当于闭眼。aspect:可视区域横纵比。near:眼睛能看到的最近垂直距离。far&#xff1a;眼睛能看到的最远垂直距离。…

由于没有远程桌面授权服务器怎么办?

在现代的工作环境中&#xff0c;远程访问和远程桌面控制已经成为一项日益重要的需求。随着企业和组织的扩张&#xff0c;人们经常需要在不同的地点之间共享文件和应用程序。由于缺乏远程桌面授权服务器&#xff0c;这一过程可能会变得困难和不安全。 远程桌面授权服务器是一种…

day02-登录模块-主页鉴权

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.分析登录流程1.1传统思路是登录校验通过之后&#xff0c;直接调用接口&#xff0c;获取token之后&#xff0c;跳转到主页1.2vue-element-admin模板的登录思路&…

基于盲信号处理的声音分离-基于改进的信息最大化的ICA算法

基于信息最大化的ICA算法的主要依据是使输入端与输出端的互信息达到最大&#xff0c;且输出各个分量之间的相关性最小化&#xff0c;即输出各个分量之间互信息量最小化&#xff0c;其算法的系统框图如图所示。 基于信息最大化的ICA算法的主要依据是使输入端与输出端的互信息达到…

华侨大学24计算机考研数据速览,专硕22408复试线290分,学硕11408接收调剂!

华侨大学计算机专业创建于1980年&#xff0c;是福建省最早设立计算机专业的高校之一。1982年成立计算机系&#xff0c;2008年成立计算机科学与技术学院。根据“华侨大学计算机科学与技术学院网站”资料&#xff0c;该院有计算机科学与技术、软件工程、网络工程3个本科专业&…

git基本使用(二):git分支的操作命令

Git 的多分支管理是指在同一个仓库中创建和管理多个分支&#xff0c;每个分支可以独立开发&#xff0c;互不干扰。分支是 Git 中的一种强大功能&#xff0c;允许开发人员同时在多个不同的功能、修复或实验上工作&#xff0c;而不会影响主分支或其他分支。通过多分支管理&#x…