Ext图书管理系统

其实这一篇日志写很久了,由于近期项目演示的需要,我把它转到这边来。

 

  本系统实质上是由Extjs做的一个网站。主要功能有:

  1、 添加和修改读者信息

2、 添加和修改图书信息

3、 添加和修改图书借阅信息

4、 还书管理

5、 图书查询

6、 新书资讯

7、 提议买书

8、 读者个人信息查看

9、 读者借还历史查看

10、 页面皮肤更换

其中大部分页面都有图书迅速查询模块,使用者可以多条件自由查询自己想要的信息,这里面的逻辑和算法有的比较复杂。

本项目最难部分有:ajax异步数据交互,Extjs写界面,数据库操作(包括模糊查询)spring + Hibernate + struts2整合extjsDWR。项目中主要有两大角色,Admin管理员和reader读者。两者的权限控制我采用了一种特殊的方式,只是这一

种方式不是到处都适用的,下面会讲到。这里面的页面都是html,没有jsp,因为大部分功能都在js里面实现的。

一、登陆页面


 

由一个登录框、一个flash和一些文字构成

 

二、主界面


 

可以看到,主界面的结构如下:

上方:左边是一张图片,右边有一个注销链接和一个关于作者的链接,还显示了当前时间,

这是用javascript实现的

    左边:导航栏,用ext里的accordiontreePanel实现的,这里的数据用dwr传过来的,

是直接在java文件里面生成的,主要的权限控制也是在这里实现的。因为这里会根据

用户的不同身份生成不同的数据,包括链接地址。最下边的那个更换皮肤是利用ext

的换肤功能实现的。我只是照抄。

右边:这里是显示和操作主要地方。

三、编程环境

1、 Eclipse 3.3.2(带tomcat插件)

2、 Tomcat6.0

3、 JDK1.6.0_16

4、 mySQL5.1

5、 Extjs2.3

6、 DWR

7、 Struts2.0.14

8、 Spring2.0

9、 Hibernate3.3.2.GA

四、代码目录


 

五、读者信息管理

1、 添加读者信息

 



 

 

填入相应的信息后,如果不出意外,点击保存就提交到数据库中去了。

里面的具体代码在说明文档中都有,有兴趣的朋友可以找我要文档。

这里还要讲到的,很重要的一点是ext提供的数据自动验证功能(很强大的功能哦)。

 如果,确认密码和读者密码不一样的话这里会用红色波浪线画册出来,鼠标放上去还会显示出提示内容。呵呵,有一个问题,就是提示字体大小不一样,不知道怎么搞的。

右边是一个更有用的应用


 ,这是普通读者修改自己信息时的操作,如果输入的密码不是原密码,则用红线画出来,提交就不能成功。

2、修改读者信息    



 可以看到界面分上下两栏。上面这一栏是用来查找读者的。有七个文本框,这些文本框都是选填的,你可以选一个或几个信息来定位一个或几个符合条件的读者。这一个的实现还要谢谢肖波提供的蓝杰任务管理系统,这一个模式是借鉴他的。这里搜索到的信息可以在下面的这个表格中显示出来。当还没进行搜索时,这个表格里面显示的是所有的读者,分布显示的,每页五条,这利用了
ext提供的强大的分布功能!!还有那个刷新按钮,可以刷新表格里面的数据。

双击表格中的某一条数据可以进行编辑,界面如下


 

修改完信息点击保存按钮就可以提交到数据库中去。这里的逻辑和上面那个一样,也是用一个按钮内handler指定的函数提交的。

图书信息

    1、添加书本信息



 

上面 的“书的类别”一项,里面的数据是从数据库中直接加载过来的。点击即加载,这是用Ext.data.JsonStore实现的。

  2、修改书本信息



 

上面是用来查询的,下面是用来显示相应的信息。

借书管理

    1、借书登记



  

一共有五栏,第一栏选读者,第二栏可以展开,用来搜索特定的读者,第三栏选择一本要借的书,第四栏可以展开,用来搜索特定的书,第五栏要求借书者给出一个具体的归还日期,以便别人再借。点击提交即可完成借书信息的填写,方便吧!

  2、修改登记


 

 

不多说,和之前的那几个原理一样,双击也可以编辑。

八、还书管理


 

选择一本,点击还书即可。

 

九、图书查询



 

喔,这个是之前的。后来改的如下。加入了是否在馆等信息



  

十、新书资讯



 

    这里面列出了最新(也就是最后加入)的五本书的详细信息。

    其中的数据处理逻辑比较复杂,有兴趣的朋友可以看看我的原代码,不过我用的算法可能很烂,还望指教!!!

 

十一、建议买的书


 

    这一模块的设计是为了让读者等能推荐一些好书,充实公司的书库。

    在下面的空格中填入相应的信息之后点击“加入”就可以把信息添加到数据库,同时

更新上面表格中的信息。管理员可以定时地查看这一项,以参考该买些什么书。

十二、读者信息管理

1、 查看和修改个人信息


 

2、 查看个人已借图书


好了,到这算是草草介绍完了,只是走马观花。

 

 

 

 

图书管理系统(Library Management System, LMS)的数据库编程通常涉及到设计数据库结构、编写SQL查询以及可能的使用编程语言如Python(搭配SQLAlchemy或ORM框架)、Java(JDBC或Hibernate)来操作数据库。以下是一个简单的概述: 1. **数据库设计**: - 创建表:例如,`Books`表(包含书名、作者、出版年份等字段),`Users`表(用户名、密码、借阅状态等),`Loans`表(用户ID、书ID、借阅日期等)。 - 关系:通常会有用户和书籍之间的关联,以及用户和贷款之间的关联。 2. **SQL操作**: - 插入数据:插入新书信息到`Books`表。 - 查询数据:SELECT语句用于检索用户借阅的书籍信息、查找特定书籍等。 - 更新数据:UPDATE语句用来修改书籍的状态(如库存数量)或用户的借阅信息。 - 删除数据:DELETE语句删除不再需要的书籍或过期的贷款记录。 3. **编程代码示例(Python with SQLAlchemy)**: ```python from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import sessionmaker, relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() engine = create_engine('sqlite:///library.db') # 假设用SQLite class Book(Base): __tablename__ = 'books' id = Column(Integer, primary_key=True) title = Column(String) author = Column(String) class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) username = Column(String) loans = relationship("Loan", back_populates="user") class Loan(Base): __tablename__ = 'loans' id = Column(Integer, primary_key=True) user_id = Column(Integer, ForeignKey('users.id')) book_id = Column(Integer, ForeignKey('books.id')) user = relationship("User", back_populates="loans") due_date = Column(Date) # 初始化Session Session = sessionmaker(bind=engine) session = Session() # 示例操作 new_book = Book(title='Book Title', author='Author Name') session.add(new_book) session.commit() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值