在学完java基础篇的时候,安排做了一个综合版的java基础项目,可以把之前学到的知识综合运用。

图书管理系统。

  • 一.项目设计到的知识
    • 1.MVC设计模式思想(分包)
      • >项目分包
      • >MVC简单介绍
    • 2.GUI(图形化界面)
    • 3.JDBC连接MySql数据库
    • 4.I/O流
    • 5.面向对象思想
  • 项目运行效果
      • 登录界面
    • 主界面
      • 读者信息管理
        • 读者信息添加
        • 读者信息查询和修改
          • 读者信息查询
          • 读者信息修改
      • 图书信息管理
        • 图书信息添加
        • 图书信息查询
        • 图书信息修改
      • 图书借阅管理
        • 图书借阅
        • 图书归还
      • 基础信息维护
        • 图书类别设置
        • 读者类别设置
        • 罚金设置
      • 用户管理
        • 修改密码
        • 用户添加
        • 用户删除

一.项目设计到的知识

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<Users> list = new ArrayList<Users>();public static List<Reader> list1 = new ArrayList<Reader>();public static List<Book> list2 = new ArrayList<Book>();public static List<Readertype> list3 = new ArrayList<Readertype>();public static List<Booktype> list4 = new ArrayList<Booktype>();public static List<Borrowbook> list5 = new ArrayList<Borrowbook>();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 stubsetLayout(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() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stublogin.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() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubBookLogin.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配置文件

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><!-- c3p0默认配置,下面还可以配置多个数据库 --><default-config><property name="jdbcUrl">jdbc:mysql://localhost:3306/mybook?characterEncoding=UTF8</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="user">root</property><property name="password">password</property><property name="initialPoolSize">6</property><property name="maxPoolSize">10</property><property name="maxIdleTime">10000</property></default-config>
</c3p0-config>


大多数情况下只用改,数据库名,账号,密码,别的默认值就行。

4.I/O流

I/O流是开发过程中,最耗费,最占用资源的一门技术,在开发中尽量减少对I/O的使用。

5.面向对象思想

面向对象的思想是在整个学java期间,都不断去学习,这种思想是潜移默化的,短时间内,往往难以清楚地理解。

项目运行效果

登录界面


主界面


…绅士们,请收回你们的目光。

读者信息管理

读者信息添加


读者信息查询和修改

读者信息查询


查询成功!

读者信息修改


修改成功!

图书信息管理

图书信息添加


由于东西较多,后面的我就不一一演示了,大家有兴趣的可以自己做一个更好的。

图书信息查询

图书信息修改

图书借阅管理

图书借阅

图书归还

基础信息维护

图书类别设置

读者类别设置

罚金设置

用户管理

修改密码

用户添加

用户删除


详细的可以了解,资源里边的项目。

联系方式qq:1287440358 微信:Burial_DH。

用java实现图书管理系统。相关推荐

  1. Java Web图书管理系统(MVC框架)-包含源码

    Java Web图书管理系统 一.前言 这是大二写的系统,因此这个系统并没有用到很多框架,只是使用了MVC框架,前端使用的是Layui框架.bootstrap框架.JSP技术.JSTL表达式和EL表达 ...

  2. Java Swing图书管理系统桌面软件附源码

    Java Swing图书管理系统桌面软件附源码,亲测可运行. 功能界面如下: 登录界面,默认账号admin密码admin 主功能界面: 添加图书功能界面: 部分源码: 完整源码下载地址: JavaSw ...

  3. Java web 图书管理系统

    本系统由java+sevlet+mysql+eclipse实现的Java web图书管理系统,具有增删改查以及导出Excel表格的功能,需要源码或者需要定制类似的Java /Java web/ ssm ...

  4. Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)

    Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)

  5. 大二小学期java:图书管理系统

    大二小学期java:图书管理系统 import java.util.*;import java.text.*;public class library {public static long char ...

  6. 计算机毕设(附源码)JAVA-SSM基于java的图书管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. java毕业设计图书管理系统源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计图书管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计图书管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈: 项目 ...

  8. java毕业设计图书管理系统演示录像源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计图书管理系统演示录像源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计图书管理系统演示录像源码+lw文档+mybatis+系统+mysql数据库+调试 本源 ...

  9. java+Mysql 图书管理系统(idea)

    目录 前言 部分界面截图 登录界面 注册界面 图书管理界面 关于我们界面 部分代码 登录界面 数据库工具类 前言 jdk 版本:openjdk version "11.0.12" ...

  10. java web 图书管理系统_图书管理系统,源代码 Java初级小项目

    今天再给大家分享一个小项目:MiNi图书管理系统.用的是Java语言开发的,代码不多,大概260行左右吧,系统是实现图书的新增图书.删除图书.借阅图书.归还图书.查看图书等简单的功能(后附源代码)! ...

最新文章

  1. 在CentOS 6.9 x86_64上搭建全功能的OpenResty 1.13.6.1笔记
  2. 静态移值编译的关键环境变量
  3. Configuring the VNC server/viewer in Linux.
  4. 在Spring中使用Asciidoctor:使用Spring MVC渲染Asciidoc文档
  5. 【渝粤教育】21秋期末考试工程项目管理10324k2
  6. FireBug 调试JS入门 —如何调试JS
  7. 几种字符串到byte[] 数组转化为String 的方法
  8. myEclipse 界面窗口打不开问题
  9. ui kit模板,让新手设计师临摹提高!
  10. python程序设计试题库_最新《Python程序设计》试题库资料
  11. “云”话数字经济:2020 腾讯全球数字生态大会定档 9 月!​
  12. 图像处理之全景拼接---基于sift的全景图像拼接
  13. C0型单元刚度矩阵的性质
  14. Windows10系统迁移-同一PC硬盘之间
  15. swift unowned和weak的使用
  16. zkServer.cmd报错invalid config exiting abnormally解决
  17. 关于高压线路如何防山火
  18. postgresql获取基于当前时间计算的当月第一天,最后一天,下个月的第n天等功能
  19. VScode+keil插件-取代keil开发不要太爽了
  20. failure: repodata/repomd.xml from docker-main-repo: [Errno 256] No more mirrors to try.

热门文章

  1. android gridlayout点击事件,Android GridLayout
  2. oracle dba segments,oracle resize报错,dba_segments与dba_data_files中相差很大
  3. 绘制一个 Activiti BPMN 流程图
  4. 2020大学计算机学科评估,2020年第五次学科评估大预测:华科将会交出一份怎样的答卷...
  5. 安全观之我见(二):无事不与安全同
  6. STM32串口溢出错误Overrun使用不当导致的串口死机
  7. 【调剂】桂林电子科技大学计算机与信息安全学院2023年硕士研究生招生复试录取办法...
  8. 服务器的文件怎么共享软件,服务器文件共享软件
  9. python之路——初识面向对象
  10. libpcap解析pcapng文件