在学完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实现图书管理系统。 - 惊觉...相关推荐

  1. java-net-php-python-java图书借阅管理系统设计演示视频计算机毕业设计程序

    java-net-php-python-java图书借阅管理系统设计演示视频计算机毕业设计程序 java-net-php-python-java图书借阅管理系统设计演示视频计算机毕业设计程序 本源码技 ...

  2. java bs架构书_基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品)

    基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品) 来源:2BYSJ.cn 资料编号:2SJ295500 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5% ...

  3. JAVA之图书借阅管理

    目录 图书借阅管理项目简介 项目框架 图书表信息 代码展示 主界面 查询图书种类 查询图书借阅情况 借书 还书 效果展示 图书借阅管理项目简介 图书管理主要用于对图书馆书籍信息的管理,主要分为以下五个 ...

  4. SSM项目图书馆管理系统,适合新人练手和毕设参考,功能首页展示 系统注册登录登出 用户管理 权限控制管理 书籍管理 图书借阅管理 个人借阅记录管理 书籍详细信息展示等

    图书馆管理系统,系统采用B/S架构 系统采用框架:java+maven+stringboot+mybatis+mysql-plus+boostart(前端界面) 首页展示 内容后台管理 菜单权限管理 ...

  5. springboot+html图书借阅管理

    springboot+html图书借阅管理 项目简介: 主体功能:图书管理->如数列表.图书上架,借阅管理->搜索图书.图书借阅.图书归还,读者管理->读者列表.信息管理,用户中心- ...

  6. 基于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 ...

  7. java中布局管理器的作用_使用Java布局管理器的目的是什么?

    当您使用layout时,调用pack()"使此窗口的大小适合其子组件的首选大小和布局."如果不这样做,则必须尝试自己计算边界.如果(当)你弄错了,如下面有点人为的例子所示,用户会责 ...

  8. activemq后台管理 看topic消息_「Java」 - SpringBoot amp; ActiveMQ

    一.消息队列 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合.异步消息.流量削锋等问题,实现高性能.高可用.可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件. 目前在生产环境中使用较 ...

  9. 尚学堂java培训_送给 Java 自学者或者初学者的最全知识清单,2020 年 Java 就该这么学...

    最近逛知乎,发现有很多想自学 Java 或者 Java 初学者提问,不知道如何学习 Java?我接触 Java 快 8 年的时间了,一直从事 Java 开发工作,自己一直升级打怪,对于如何更好的学习 ...

最新文章

  1. 快速开发工作流_02_集成在线流程设计器
  2. 解决Ajax请求时无法重定向的问题
  3. 使用IntelliJ IDEA开发Spring MVC HelloWorld
  4. LeetCode刷题——80. 删除排序数组中的重复项 II
  5. 没注意开源软件的文档和对应版本号,悲剧了
  6. JEB配合IDA神器逆向
  7. Apache Impala 3.4.0 —— Admission Control and Query Queuing(动态资源池)实践
  8. Python编程从入门到实践(第2版)个人学习笔记
  9. TortoiseSVN 使用教程
  10. c语言生日快乐音乐程序,89S51演奏生日快乐的歌曲c程序
  11. 本科阶段学习经验分享(未整理)
  12. Gym - 101986F Pizza Delivery (最短路必经路径)
  13. 计算机启动灯光提示,开机电脑指示灯红色常亮是怎么回事?
  14. python立体爱心_css绘制各种各样的形状图形
  15. 开发会自测为什么测试还会单独存在?软件测试八大误区
  16. JavaScript提取非行间样式
  17. 戴尔电脑录屏怎么录?这3个方法,教你轻松录屏
  18. css3 搜索栏 圆角,CSS3 圆角
  19. 让mysql的自增id重新从1开始
  20. 城市货车通行码二维码解析

热门文章

  1. 怎么增加照片的KB大小
  2. 怎么改变png图片的大小kb?怎么更改png图片的大小?
  3. 中国最懒城市,这里的人不想赚钱,只想躺平
  4. 微信小程序中将图片与音乐制作成MV
  5. 用计算机描点法画方程函数图像,函数的三种表示方法及用描点法画函数图像.——青夏教育精英家教网——...
  6. kettle发送邮件报错:535,authentication failed
  7. 信息化应用场景,华为云CDN能为企业做什么?
  8. 【行研资料】智能家居的未来(英文)——附下载
  9. C语言如何求n次方根
  10. KISSY基础篇乄KISSY之Event