题目要求
编写一个图书管理程序,该程序具有如下功能:
1)录入图书信息(Book),图书的属性包括书名(name)、作者(author)、出版社(press)、刊号(ISBN)、出版日期(pubDate)、页数(pages)等。
2)录入用户信息(User),用户属性包括用户名(account),密码(password)、用户类型(type),用户分为管理员和普通用户。
3)记录每个用户的借书记录,借书记录(BorrowRecord)包括:用户(user)、借书日期(borrowDate)、图书(book)。
4)记录每个用户的还书记录,还书记录(ReturnRecord)包括:用户(user)、还书日期(returnDate)、图书(book)。
- 代码
录入书籍信息
package com.book.view;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
class book extends JFrame {
private JPanel contentPane;
private JTextField jt1;
private JTextField jt2;
private JTextField jt3;
private JTextField jt4;
private JTextField jt5;
private JTextField jt6;
Connection coon = null;
PreparedStatement st;
public static final String driver = "";
public static final String url = "";
public static final String user = "";
public static final String password = "";
String sql = "insert into book values(?,?,?,?,?,?)";
/**
* Launch the application.
*/
/**
* Create the frame.
*/
public book() {
setVisible(true);
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
int windowsWedth = 520 ;
int windowsHeight = 520;
setBounds((width-windowsWedth)/2,(height-windowsHeight)/2,windowsWedth,windowsHeight);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel jlb1 = new JLabel("Name");
jlb1.setBounds(57, 39, 66, 39);
contentPane.add(jlb1);
JLabel jlb2 = new JLabel("Author");
jlb2.setBounds(57, 88, 66, 32);
contentPane.add(jlb2);
JLabel jlb3 = new JLabel("Press");
jlb3.setBounds(57, 139, 66, 32);
contentPane.add(jlb3);
JLabel jlb4 = new JLabel("ISBN");
jlb4.setBounds(57, 190, 54, 36);
contentPane.add(jlb4);
JLabel jlb5 = new JLabel("PubDate");
jlb5.setBounds(57, 236, 66, 37);
contentPane.add(jlb5);
JLabel jlb6 = new JLabel("Pages");
jlb6.setBounds(57, 292, 66, 29);
contentPane.add(jlb6);
JButton jb1 = new JButton("Input");
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
Class.forName(driver);
coon = DriverManager.getConnection(url,user,password);
st = coon.prepareStatement(sql);
String str1 = jt1.getText();
String str2 = jt2.getText();
String str3 = jt3.getText();
String str4 = jt4.getText();
String str5 = jt5.getText();
String str6 = jt6.getText();
st.setString(1, str1);
st.setString(2, str2);
st.setString(3, str3);
st.setString(4, str4);
st.setString(5,str5);
st.setString(6,str6);
st.executeUpdate();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
if (null != coon) {
try {
coon.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "关闭数据库失败!", "提示", 1);
e.printStackTrace();
}
}
}
});
jb1.setBounds(57, 378, 124, 52);
contentPane.add(jb1);
JButton jb2 = new JButton("Exit");
jb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
jt1.setText("");
jt2.setText("");
jt3.setText("");
jt4.setText("");
jt5.setText("");
jt6.setText("");
}
});
jb2.setBounds(273, 378, 124, 52);
contentPane.add(jb2);
jt1 = new JTextField();
jt1.setBounds(151, 46, 215, 32);
contentPane.add(jt1);
jt1.setColumns(10);
jt2 = new JTextField();
jt2.setBounds(151, 91, 215, 29);
contentPane.add(jt2);
jt2.setColumns(10);
jt3 = new JTextField();
jt3.setBounds(151, 143, 215, 32);
contentPane.add(jt3);
jt3.setColumns(10);
jt4 = new JTextField();
jt4.setBounds(151, 194, 215, 32);
contentPane.add(jt4);
jt4.setColumns(10);
jt5 = new JTextField();
jt5.setBounds(151, 242, 215, 31);
contentPane.add(jt5);
jt5.setColumns(10);
jt6 = new JTextField();
jt6.setBounds(151, 300, 215, 32);
contentPane.add(jt6);
jt6.setColumns(10);
}
}
记录
package com.book.view;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.SystemColor;
import java.awt.Toolkit;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class record extends JFrame {
private JPanel contentPane;
/**
* Create the frame.
*/
public record() {
setTitle("Record");
setVisible(true);
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
int windowsWedth = 400 ;
int windowsHeight = 300;
setBounds((width-windowsWedth)/2,(height-windowsHeight)/2,428,375);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton jb1 = new JButton("Borrow");
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
borrowrecord br = new borrowrecord();
}
});
jb1.setBounds(143, 51, 137, 37);
contentPane.add(jb1);
JButton jb2 = new JButton("Return");
jb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
returnrecord rr = new returnrecord();
}
});
jb2.setBounds(143, 117, 137, 37);
contentPane.add(jb2);
JButton jb3 = new JButton("ShowBorrow");
jb3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
show1 s1 = new show1();
}
});
jb3.setBounds(143, 186, 137, 37);
contentPane.add(jb3);
JButton jb4 = new JButton("ShowReturn");
jb4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
show2 s2 = new show2();
}
});
jb4.setBounds(143, 259, 137, 37);
contentPane.add(jb4);
}
}
借书记录
package com.book.view;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class borrowrecord extends JFrame {
private JPanel contentPane;
private JTextField jtf2;
private JLabel jlb1;
private JLabel jlb2;
private JTextField jtf3;
private JLabel lblNewLabel_1;
private JTextField jtf1;
Connection coon = null;
PreparedStatement st;
public static final String driver = "";
public static final String url = "