图书管理系统,图书借阅系统
文章目录
在写项目之前一般都要先需求分析,数据库分析。
以图书管理系统为例
- 登录和注册功能
- 查看所有图书(遍历)
- 修改图书信息
- 这是大致功能需要,还有一些小的功能需要,比如修改密码、读者信息添加和查询及修改、图书信息添加和查询及修改、图书借阅和归还、基本信息维护、添加删除用户等等。
1.逻辑分析,写前准备
写项目之前最好是先分包,程序员MVC
bean包:里是一些实体类,如user用户、student学生、fruit水果这些都会放这里面,由属性,构造器,get方法,set方法,tostring方法组成。
dao包:是最底层用来处理数据的地方,大部分代码如何操作的都会写在这里面,注意:daoImpl里面是写代码的地方,dao里面是接口。
service包:是传输数据的地方,意思是从view层传来了数据,我该把它们送到何处,送给哪一个方法。这样分包的好处是数据传输比较清晰,如果写的项目比较大,处理的数据比较多,那么这个分包的方法的优势就会体现出来。
utils包:这里面放一些工具类,如JDBC,自定义的工具类可以放里面。
view包:是显示给用户的界面,是程序与用户直接接触的类。
在此之前我们还要创建好数据库的表格,还要分析需要用到什么表格,怎么存放数据,如这个系统就需要
- 用户表
- 图书表
- 读者表
- 图书借阅记录表
- 等等一些小的功能可能也会需要表来存放数据。
接下来一步走直接创建包,创建实体类book类
package org.vector.bean;
public class Book {
private String bookISBN;
private String booktype;
private String bookname;
private String bookauthor;
private String bookpress;
private String bookdate;
private String bookprintnumber;
private String bookprice;
public Book() {}
public Book(String bookISBN, String booktype, String bookname, String bookauthor, String bookpress, String bookdate,
String bookprintnumber, String bookprice) {
this.bookISBN = bookISBN;
this.booktype = booktype;
this.bookname = bookname;
this.bookauthor = bookauthor;
this.bookpress = bookpress;
this.bookdate = bookdate;
this.bookprintnumber = bookprintnumber;
this.bookprice = bookprice;
}
public String getBookISBN() {
return bookISBN;
}
public void setBookISBN(String bookISBN) {
this.bookISBN = bookISBN;
}
public String getBooktype() {
return booktype;
}
public void setBooktype(String booktype) {
this.booktype = booktype;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getBookauthor() {
return bookauthor;
}
public void setBookauthor(String bookauthor) {
this.bookauthor = bookauthor;
}
public String getBookpress() {
return bookpress;
}
public void setBookpress(String bookpress) {
this.bookpress = bookpress;
}
public String getBookdate() {
return bookdate;
}
public void setBookdate(String bookdate) {
this.bookdate = bookdate;
}
public String getBookprintnumber() {
return bookprintnumber;
}
public void setBookprintnumber(String bookprintnumber) {
this.bookprintnumber = bookprintnumber;
}
public String getBookprice() {
return bookprice;
}
public void setBookprice(String bookprice) {
this.bookprice = bookprice;
}
@Override
public String toString() {
return "Book [bookISBN=" + bookISBN + ", booktype=" + booktype + ", bookname=" + bookname + ", bookauthor="
+ bookauthor + ", bookpress=" + bookpress + ", bookdate=" + bookdate + ", bookprintnumber="
+ bookprintnumber + ", bookprice=" + bookprice + "]";
}
}
然后下面写在service接口里写需要用到的方法,接着传给dao层的去处理数据,然后返回结果,一层接一层,数据传输图:view–>service–>dao–>service–>view 就这样传输。
2.GUI设计
处理数据的代码有1000行,但是这个GUI竟然写了4000行,我有点哭笑不得,GUI的代码部件有限,然而你需要调试,布局设计。
GUI是在view层的代码,比较通俗易懂
3.最后
该项目也是我刚刚熟悉MVC的时候写的,关于MVC的格式有点不标准,不过功能效果还是不错的,对于视图层做的也是一般般,有的一部分功能还没有体现出来,不过一些困难的功能还是体现出来了,下面就是一些功能展示图了。资源已上传,可与该博客配合观看。
登录和注册功能(展示)
查看遍历所有图书(展示)
修改图书信息(展示)
图书借阅
借书日期为月日和时间,没有年哦
图书类型管理
读者类型管理
用户添加
修改密码
用户删除
图书信息添加
搜索
罚金设置(小功能)
不过在别的页面会有体现哦
4.乱码问题
该项目使用的编码格式为UTF-8,所以使用eclipse打开的时候需要更改一下eclipse的编码格式,流程如下:
1.点击顶部Window->Preferences,打开后效果如下:
2.按照如图所示操作
3.操作完成后,若仍是乱码,则删除项目,重新导入一下。
5.安装教程:
【工房Java系统演示运行视频】 https://www.bilibili.com/video/BV1Jk4y1K7iR/?share_source=copy_web&vd_source=d7eec02037ab315471fbef37f53f997c
下载链接:https://download.youkuaiyun.com/download/daitu_/13453364