图书借阅管理用java实现_用java实现图书管理系统。 - 惊觉...
在學(xué)完java基礎(chǔ)篇的時(shí)候,安排做了一個(gè)綜合版的java基礎(chǔ)項(xiàng)目,可以把之前學(xué)到的知識(shí)綜合運(yùn)用。
一.項(xiàng)目設(shè)計(jì)到的知識(shí)
1.MVC設(shè)計(jì)模式思想(分包)
>項(xiàng)目分包
運(yùn)用這種設(shè)計(jì)模式的優(yōu)點(diǎn):
MVC 是一種程序開(kāi)發(fā)設(shè)計(jì)模式,它實(shí)現(xiàn)了顯示模塊與功能模塊的分離。提高了程序的可維護(hù)性、可移植性、可擴(kuò)展性與可重用性,降低了程序的開(kāi)發(fā)難度。它主要分模型、視圖、控制器三層。
>MVC簡(jiǎn)單介紹
M model業(yè)務(wù)模型(pojo/domain/bean)與現(xiàn)實(shí)中實(shí)體類(lèi)聯(lián)系
V views視圖層(views)
圖形化界面(gui)
C controller
用戶(hù)與軟件交互,處理信息
dao層(數(shù)據(jù)持久化)
提供數(shù)據(jù)
service層(處理邏輯)
處理數(shù)據(jù)
controller(javaweb里邊的內(nèi)容,servlet)
較詳細(xì)的圖示:
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("圖書(shū)借閱系統(tǒng)登錄界面");
Font font = new Font("圓體", Font.BOLD, 50);
label = new JLabel("圖書(shū)借閱系統(tǒng)");
label.setFont(font);
label.setBounds(40, 20, 400, 50);
add(label);
name = new JLabel("用戶(hù)名:");
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("注冊(cè)");
//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, "登錄成功", "標(biāo)題", 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, "登錄失敗,該用戶(hù)不存在", "標(biāo)題", 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數(shù)據(jù)庫(kù)
用了c3p0對(duì)原生JDBC的封裝思想,大大提高了開(kāi)發(fā)者的效率。
c3p0xml配置文件
jdbc:mysql://localhost:3306/mybook?characterEncoding=UTF8
com.mysql.jdbc.Driver
root
password
6
10
10000
大多數(shù)情況下只用改,數(shù)據(jù)庫(kù)名,賬號(hào),密碼,別的默認(rèn)值就行。
4.I/O流
I/O流是開(kāi)發(fā)過(guò)程中,最耗費(fèi),最占用資源的一門(mén)技術(shù),在開(kāi)發(fā)中盡量減少對(duì)I/O的使用。
5.面向?qū)ο笏枷?/p>
面向?qū)ο蟮乃枷胧窃谡麄€(gè)學(xué)java期間,都不斷去學(xué)習(xí),這種思想是潛移默化的,短時(shí)間內(nèi),往往難以清楚地理解。
項(xiàng)目運(yùn)行效果
登錄界面
主界面
…紳士們,請(qǐng)收回你們的目光。
讀者信息管理
讀者信息添加
讀者信息查詢(xún)和修改
讀者信息查詢(xún)
查詢(xún)成功!
讀者信息修改
修改成功!
圖書(shū)信息管理
圖書(shū)信息添加
由于東西較多,后面的我就不一一演示了,大家有興趣的可以自己做一個(gè)更好的。
圖書(shū)信息查詢(xún)
圖書(shū)信息修改
圖書(shū)借閱管理
圖書(shū)借閱
圖書(shū)歸還
基礎(chǔ)信息維護(hù)
圖書(shū)類(lèi)別設(shè)置
讀者類(lèi)別設(shè)置
罰金設(shè)置
用戶(hù)管理
修改密碼
用戶(hù)添加
用戶(hù)刪除
詳細(xì)的可以了解,資源里邊的項(xiàng)目。
聯(lián)系方式qq:1287440358 微信:Burial_DH。
轉(zhuǎn)載自CSDN-專(zhuān)業(yè)IT技術(shù)社區(qū)
總結(jié)
以上是生活随笔為你收集整理的图书借阅管理用java实现_用java实现图书管理系统。 - 惊觉...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 4t磁盘格式化,Ubuntu
- 下一篇: ERP系统源码