图书借阅管理用java实现_用java实现图书管理系统。 - 惊觉...
在学完java基础篇的时候,安排做了一个综合版的java基础项目,可以把之前学到的知识综合运用。
一.项目设计到的知识
1.MVC设计模式思想(分包)
>项目分包
运用这种设计模式的优点:
MVC 是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。
>MVC简单介绍
M model业务模型(pojo/domain/bean)与现实中实体类联系
V views视图层(views)
图形化界面(gui)
C controller
用户与软件交互,处理信息
dao层(数据持久化)
提供数据
service层(处理逻辑)
处理数据
controller(javaweb里边的内容,servlet)
较详细的图示:
2.GUI(图形化界面)
其中的GUI代码案例:
package org.vector.view;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import org.vector.bean.Book;
import org.vector.bean.Booktype;
import org.vector.bean.Borrowbook;
import org.vector.bean.Reader;
import org.vector.bean.Readertype;
import org.vector.bean.Users;
import org.vector.serviceImpl.UsersServiceImpl;
public class BookLogin extends JFrame{
public BookLogin() {
buliding();
addListeners();
}
public static String name1;
public static List list = new ArrayList();
public static List list1 = new ArrayList();
public static List list2 = new ArrayList();
public static List list3 = new ArrayList();
public static List list4 = new ArrayList();
public static List list5 = new ArrayList();
private JButton login,reset,register;
private JLabel name,password,label;
private JTextField name_Text;
private JPasswordField password_Text;
private void buliding() {
// TODO Auto-generated method stub
setLayout(null);
background();
setTitle("图书借阅系统登录界面");
Font font = new Font("圆体", Font.BOLD, 50);
label = new JLabel("图书借阅系统");
label.setFont(font);
label.setBounds(40, 20, 400, 50);
add(label);
name = new JLabel("用户名:");
name.setBounds(45, 100, 120, 30);
add(name);
name_Text = new JTextField(20);
name_Text.setBounds(100, 100, 200, 30);
add(name_Text);
password = new JLabel("密 码:");
password.setBounds(45, 150, 120, 30);
add(password);
password_Text = new JPasswordField(20);
password_Text.setBounds(100, 150, 200, 30);
add(password_Text);
login = new JButton("登录");
login.setBounds(50, 200, 100, 35);
add(login);
reset = new JButton("重置");
reset.setBounds(150, 200, 100, 35);
add(reset);
//register = new JButton("注册");
//register.setBounds(250, 200, 100, 35);
//add(register);
setBounds(400,300,400,300);
setLocation((2000-getWidth())/2,(1000-getHeight())/2);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public void background() {
setSize(600, 500);
setLocation(100, 100);
String path = "Login.jpg";
ImageIcon background = new ImageIcon(path);
JLabel label = new JLabel(background);
label.setBounds(0, 0, this.getWidth(), this.getHeight());
JPanel imagePanel = (JPanel) this.getContentPane();
imagePanel.setOpaque(false);
this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void addListeners() {
login.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
login.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
int flag = 0;
String name = name_Text.getText();
String password = password_Text.getText();
name1 = name;
UsersServiceImpl user = new UsersServiceImpl();
BookLogin.list.clear();
BookLogin.list.addAll(user.findUsers());
for (int i = 0; i < BookLogin.list.size(); i++) {
if(name.equals(BookLogin.list.get(i).getName())&&password.equals(BookLogin.list.get(i).getPassword())){
JOptionPane.showMessageDialog(null, "登录成功", "标题", JOptionPane.WARNING_MESSAGE);
BookLogin.this.dispose();
new BorrowbookView().setVisible(true);
flag = 1;
BookLogin.this.dispose();
new BorrowbookView().setVisible(true);
break;
}
}
if(flag == 0) {
JOptionPane.showMessageDialog(null, "登录失败,该用户不存在", "标题", JOptionPane.WARNING_MESSAGE);
}
}
});
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
BookLogin.this.dispose();
new BookLogin().setVisible(true);
}
});
//register.addActionListener(new ActionListener() {
//
//@Override
//public void actionPerformed(ActionEvent e) {
TODO Auto-generated method stub
//BookLogin.this.dispose();
//new UserAdd().setVisible(true);
//}
//});
}
}
3.JDBC连接MySql数据库
用了c3p0对原生JDBC的封装思想,大大提高了开发者的效率。
c3p0xml配置文件
jdbc:mysql://localhost:3306/mybook?characterEncoding=UTF8
com.mysql.jdbc.Driver
root
password
6
10
10000
大多数情况下只用改,数据库名,账号,密码,别的默认值就行。
4.I/O流
I/O流是开发过程中,最耗费,最占用资源的一门技术,在开发中尽量减少对I/O的使用。
5.面向对象思想
面向对象的思想是在整个学java期间,都不断去学习,这种思想是潜移默化的,短时间内,往往难以清楚地理解。
项目运行效果
登录界面
主界面
…绅士们,请收回你们的目光。
读者信息管理
读者信息添加
读者信息查询和修改
读者信息查询
查询成功!
读者信息修改
修改成功!
图书信息管理
图书信息添加
由于东西较多,后面的我就不一一演示了,大家有兴趣的可以自己做一个更好的。
图书信息查询
图书信息修改
图书借阅管理
图书借阅
图书归还
基础信息维护
图书类别设置
读者类别设置
罚金设置
用户管理
修改密码
用户添加
用户删除
详细的可以了解,资源里边的项目。
联系方式qq:1287440358 微信:Burial_DH。
转载自CSDN-专业IT技术社区
图书借阅管理用java实现_用java实现图书管理系统。 - 惊觉...相关推荐
- java-net-php-python-java图书借阅管理系统设计演示视频计算机毕业设计程序
java-net-php-python-java图书借阅管理系统设计演示视频计算机毕业设计程序 java-net-php-python-java图书借阅管理系统设计演示视频计算机毕业设计程序 本源码技 ...
- java bs架构书_基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品)
基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品) 来源:2BYSJ.cn 资料编号:2SJ295500 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5% ...
- JAVA之图书借阅管理
目录 图书借阅管理项目简介 项目框架 图书表信息 代码展示 主界面 查询图书种类 查询图书借阅情况 借书 还书 效果展示 图书借阅管理项目简介 图书管理主要用于对图书馆书籍信息的管理,主要分为以下五个 ...
- SSM项目图书馆管理系统,适合新人练手和毕设参考,功能首页展示 系统注册登录登出 用户管理 权限控制管理 书籍管理 图书借阅管理 个人借阅记录管理 书籍详细信息展示等
图书馆管理系统,系统采用B/S架构 系统采用框架:java+maven+stringboot+mybatis+mysql-plus+boostart(前端界面) 首页展示 内容后台管理 菜单权限管理 ...
- springboot+html图书借阅管理
springboot+html图书借阅管理 项目简介: 主体功能:图书管理->如数列表.图书上架,借阅管理->搜索图书.图书借阅.图书归还,读者管理->读者列表.信息管理,用户中心- ...
- 基于PHP的图书借阅管理系统设计与实现
目录 摘要 1 1前言 2 2小组分工情况 3 3关键技术介绍 3 3.1PHP 3 3.2JavaScript 3 3.3Ajax 3 3.4Mysql 3 4系统分析和设计 4 4.1需求分析 4 ...
- java中布局管理器的作用_使用Java布局管理器的目的是什么?
当您使用layout时,调用pack()"使此窗口的大小适合其子组件的首选大小和布局."如果不这样做,则必须尝试自己计算边界.如果(当)你弄错了,如下面有点人为的例子所示,用户会责 ...
- activemq后台管理 看topic消息_「Java」 - SpringBoot amp; ActiveMQ
一.消息队列 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合.异步消息.流量削锋等问题,实现高性能.高可用.可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件. 目前在生产环境中使用较 ...
- 尚学堂java培训_送给 Java 自学者或者初学者的最全知识清单,2020 年 Java 就该这么学...
最近逛知乎,发现有很多想自学 Java 或者 Java 初学者提问,不知道如何学习 Java?我接触 Java 快 8 年的时间了,一直从事 Java 开发工作,自己一直升级打怪,对于如何更好的学习 ...
最新文章
- 快速开发工作流_02_集成在线流程设计器
- 解决Ajax请求时无法重定向的问题
- 使用IntelliJ IDEA开发Spring MVC HelloWorld
- LeetCode刷题——80. 删除排序数组中的重复项 II
- 没注意开源软件的文档和对应版本号,悲剧了
- JEB配合IDA神器逆向
- Apache Impala 3.4.0 —— Admission Control and Query Queuing(动态资源池)实践
- Python编程从入门到实践(第2版)个人学习笔记
- TortoiseSVN 使用教程
- c语言生日快乐音乐程序,89S51演奏生日快乐的歌曲c程序
- 本科阶段学习经验分享(未整理)
- Gym - 101986F Pizza Delivery (最短路必经路径)
- 计算机启动灯光提示,开机电脑指示灯红色常亮是怎么回事?
- python立体爱心_css绘制各种各样的形状图形
- 开发会自测为什么测试还会单独存在?软件测试八大误区
- JavaScript提取非行间样式
- 戴尔电脑录屏怎么录?这3个方法,教你轻松录屏
- css3 搜索栏 圆角,CSS3 圆角
- 让mysql的自增id重新从1开始
- 城市货车通行码二维码解析