javaSwing+MySQL实现图书管理系统
生活随笔
收集整理的這篇文章主要介紹了
javaSwing+MySQL实现图书管理系统
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
javaSwing已經(jīng)學(xué)了一個(gè)月了,重最開(kāi)始的生疏到后來(lái)慢慢的熟悉其實(shí)這并不是一個(gè)短暫的過(guò)程,也是十分消耗時(shí)間的.菜單頁(yè)面設(shè)計(jì)的不是很好,各方面也需要改進(jìn),數(shù)據(jù)庫(kù)的關(guān)聯(lián)性也不是很強(qiáng),等有時(shí)間了在回來(lái)慢慢改。在這里貼一份源碼紀(jì)念一下。
登錄界面
可以直接到GitHub下載源碼
菜單界面
import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class Menu {public static void main(String[] args) {new MenuJFrame();} }class MenuJFrame extends JFrame implements ActionListener {private JButton jButton1 = new JButton("增加圖書(shū)");private JFrame jFrame = new JFrame("圖書(shū)菜單窗口");private JButton jButton2 = new JButton("刪除圖書(shū)");public MenuJFrame() { // jFrame.setSize(600, 600);jFrame.setLocationRelativeTo(null);ImageIcon imageIcon = new ImageIcon("E:\\java\\Menu.gif");JLabel label = new JLabel(imageIcon);label.setBounds(0, 0, imageIcon.getIconWidth(), imageIcon.getIconHeight());jFrame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));JPanel panel = (JPanel) jFrame.getContentPane();panel.setOpaque(false);jFrame.setSize(imageIcon.getIconWidth(), imageIcon.getIconHeight());jFrame.setResizable(false);jFrame.setLocation(300,300); // jFrame.setLayout(null);JPanel jPanel1 = new JPanel(new BorderLayout());//創(chuàng)建面板jPanel1.setOpaque(false);JTabbedPane tabbedPane = new JTabbedPane();JToolBar toolBar1 = new JToolBar();toolBar1.setOpaque(false);toolBar1.setLayout(new FlowLayout(FlowLayout.LEFT, 15, 10));JToolBar jToolBar2 = new JToolBar();jToolBar2.setLayout(new FlowLayout(FlowLayout.LEFT, 15, 10));jToolBar2.setOpaque(false);JToolBar jToolBar3 = new JToolBar();jToolBar3.setOpaque(false);jToolBar3.setLayout(new FlowLayout(FlowLayout.LEFT, 15, 10));JToolBar jToolBar4 = new JToolBar();jToolBar4.setOpaque(false);jToolBar4.setLayout(new FlowLayout(FlowLayout.LEFT, 15, 10));tabbedPane.add("圖書(shū)管理", toolBar1);tabbedPane.setOpaque(false);jButton1.setOpaque(false);jButton1.setFont(new Font("宋體", Font.BOLD, 16));jButton2.setFont(new Font("宋體", Font.BOLD, 16)); // JButton jButton1 = new JButton("增加圖書(shū)"); // JButton jButton2 = new JButton("刪除圖書(shū)");toolBar1.add(jButton1);jButton1.addActionListener(this);jButton2.addActionListener(this);toolBar1.add(jButton2);tabbedPane.add("借書(shū)", jToolBar2);JButton jButton3 = new JButton("借書(shū)");jButton3.setFont(new Font("宋體", Font.BOLD, 16));jButton3.addActionListener(this);JButton jButton4 = new JButton("查看書(shū)籍目錄");jButton4.setFont(new Font("宋體", Font.BOLD, 16));jButton4.addActionListener(this);jToolBar2.add(jButton3);jToolBar2.add(jButton4);tabbedPane.add("還書(shū)", jToolBar3);JButton jButton5 = new JButton("還書(shū)");jButton5.setFont(new Font("宋體", Font.BOLD, 16));jButton5.addActionListener(this);JButton jButton6 = new JButton("選項(xiàng)6");jToolBar3.add(jButton5);jToolBar3.add(jButton6);tabbedPane.add("用戶信息管理", jToolBar4);JButton jButton7 = new JButton("個(gè)人信息管理");jButton7.setFont(new Font("宋體", Font.BOLD, 16));JButton jButton8 = new JButton("完善用戶其它信息");jButton8.setFont(new Font("宋體", Font.BOLD, 16));jToolBar4.add(jButton7);jToolBar4.add(jButton8);jFrame.getContentPane().add(tabbedPane, BorderLayout.NORTH);jFrame.getContentPane().add(jPanel1, BorderLayout.CENTER);tabbedPane.addChangeListener(new ChangeListener() {@Overridepublic void stateChanged(ChangeEvent e) {System.out.println("當(dāng)前選項(xiàng)卡:" + tabbedPane.getSelectedIndex());}});tabbedPane.setSelectedIndex(1);jFrame.setVisible(true);//借書(shū)按鈕監(jiān)聽(tīng)器jButton3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {jFrame.setVisible(false);dispose();BorrowBook borrowBook = new BorrowBook();borrowBook.Remind();}});//還書(shū)按鈕監(jiān)聽(tīng)器jButton5.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {jFrame.setVisible(false);dispose();ReturnBook returnBook = new ReturnBook();returnBook.returnBook();}});//個(gè)人 用戶管理監(jiān)聽(tīng)器jButton7.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {jFrame.setVisible(false);dispose();UserManage userManage = new UserManage();userManage.User();}});//完善用戶信息監(jiān)聽(tīng)器jButton8.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {jFrame.setVisible(false);dispose();UserInformation userInformation = new UserInformation();userInformation.Information();}});}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getSource() == jButton1) {jFrame.setVisible(false);dispose(); // dispose(); // JFrame jFrame1 = new JFrame("新窗口"); // jFrame1.setVisible(true);BookManege book = new BookManege();book.addBook();} else if (e.getSource() == jButton2) {jFrame.setVisible(false);dispose();BookManege book = new BookManege();book.DeleteBook();}} } import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class DataBase1 extends DataBaseConnect {private DataBaseConnect connect = new DataBaseConnect();//判斷書(shū)籍是否存在public boolean Select(String bookName) throws SQLException, ClassNotFoundException {connect.getConnection();PreparedStatement sql;Connection connection = this.getConnection();sql = connection.prepareStatement("select *from library.db_book");ResultSet resultSet;resultSet = sql.executeQuery();int flag = 0;while (resultSet.next()) {String book = resultSet.getString("BookName");if (bookName.equals(book)) {flag = 1;}}if (flag == 1)return true;elsereturn false;}//查找書(shū)籍剩余情況public int Select(String bookName, int flag) throws SQLException, ClassNotFoundException {connect.getConnection();PreparedStatement sql;Connection connection = this.getConnection();sql = connection.prepareStatement("select *from library.db_book ");ResultSet resultSet;resultSet = sql.executeQuery();int number = 0;while (resultSet.next()) {String book = resultSet.getString("BookName");int bookNumber = resultSet.getInt("BookNumber");if (bookName.equals(book))number = bookNumber;}return number;}//更新圖書(shū)館書(shū)籍?dāng)?shù)目public void UpDate(String bookName, int flag) throws SQLException, ClassNotFoundException {connect.getConnection();PreparedStatement sql;Connection connection = this.getConnection();sql = connection.prepareStatement("update library.db_book set BookNumber=? where BookName=?");String number;number = String.valueOf(Select(bookName, flag));if (flag == 1)sql.setInt(1, Integer.parseInt(number) - 1);else if (flag == 2)sql.setInt(1, Integer.parseInt(number) + 1);sql.setString(2, bookName);sql.executeUpdate();}//記得更新借書(shū)時(shí)間public void addBorrowName(String bookName, String borrowName, String borrowTime, String returnTime) throws SQLException, ClassNotFoundException {Connection connection = connect.getConnection();PreparedStatement sql;sql = connection.prepareStatement("insert into library.db_borrow(BookName, BorrowName,BorrowTime,ReturnTime)values (?,?,?,?)");sql.setString(1, bookName);sql.setString(2, borrowName);sql.setString(3, borrowTime);sql.setString(4, returnTime);sql.executeUpdate();}//還書(shū)記錄public void returnBook(String borrowName) throws SQLException, ClassNotFoundException {Connection connection = connect.getConnection();PreparedStatement sql;sql = connection.prepareStatement("delete from library.db_borrow where BorrowName=?");sql.setString(1, borrowName);sql.executeUpdate();}} import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException;public class BookManege extends JFrame implements ActionListener {private JButton jButton1 = new JButton("增加");private JButton jButton2 = new JButton("返回上一級(jí)目錄");private JTextField jTextField1, jTextField2, jTextField3;void addBook() {this.setTitle("圖書(shū)管理"); // JButton jButton1 = new JButton("增加");jButton1.addActionListener(this); // JButton jButton2 = new JButton("返回上一級(jí)目錄");jButton2.addActionListener(this);JLabel jLabel1 = new JLabel("圖書(shū)名稱");jTextField1 = new JTextField(15);JLabel jLabel2 = new JLabel("圖書(shū)作者");jTextField2 = new JTextField(15);JLabel jLabel3 = new JLabel("入庫(kù)時(shí)間");jTextField3 = new JTextField(15);JPanel jPanelNorth = new JPanel();JPanel jPanelCenter1 = new JPanel();JPanel jPanelCenter2 = new JPanel();JPanel jPanelCenter = new JPanel();JPanel jPanelSouth = new JPanel();// jPanelNorth.setLayout(new BorderLayout());jPanelNorth.add(jLabel1);jPanelNorth.add(jTextField1);jPanelCenter1.add(jLabel2);jPanelCenter1.add(jTextField2);jPanelCenter2.add(jLabel3);jPanelCenter2.add(jTextField3);jPanelCenter.add(jPanelCenter1, BorderLayout.CENTER);jPanelCenter.add(jPanelCenter2, BorderLayout.SOUTH); // this.add(jPanelNorth,BorderLayout.NORTH);jPanelSouth.add(jButton1);jPanelSouth.add(jButton2);this.add(jPanelNorth, BorderLayout.NORTH);this.add(jPanelCenter, BorderLayout.CENTER);this.add(jPanelSouth, BorderLayout.SOUTH);this.setSize(400, 200);this.setVisible(true);}void DeleteBook() {JFrame jFrame = new JFrame("刪除圖書(shū)");JButton jButton = new JButton("刪除");jButton.addActionListener(this);JButton jButton1 = new JButton("返回上一級(jí)目錄");jButton1.addActionListener(this);JLabel jLabel = new JLabel("書(shū)籍名稱");JTextField jTextField = new JTextField(15);JPanel jPanel = new JPanel();JPanel jPanel1 = new JPanel();jPanel1.add(jButton);jPanel1.add(jButton1);jPanel.add(jLabel);jPanel.add(jTextField);this.add(jPanel, BorderLayout.NORTH);this.add(jPanel1, BorderLayout.CENTER);setVisible(true);setSize(500, 400);jButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String bookName;bookName = jTextField.getText();DataBaseConnect connect = new DataBaseConnect();try {boolean result = connect.SelectBook(bookName);if (result) {connect.DeleteBook(bookName);JOptionPane.showMessageDialog(jFrame, "刪除成功");} else {JOptionPane.showMessageDialog(jFrame, "圖書(shū)館沒(méi)有書(shū)籍信息");}} catch (SQLException | ClassNotFoundException ex) {ex.printStackTrace();}}});jButton1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {setVisible(false);dispose();new MenuJFrame();}});}//增加圖書(shū)監(jiān)聽(tīng)器@Overridepublic void actionPerformed(ActionEvent e) {if (e.getSource() == jButton1) {//增加書(shū)到數(shù)據(jù)庫(kù)db_BookString bookName, bookAuthor, bookTime;bookName = jTextField1.getText();bookAuthor = jTextField2.getText();bookTime = jTextField3.getText();DataBaseConnect connect = new DataBaseConnect();try {String s = connect.AddBook(bookName, bookAuthor, bookTime, 1);JOptionPane.showMessageDialog(this, s);} catch (SQLException | ClassNotFoundException ex) {ex.printStackTrace();}} else if (e.getSource() == jButton2) {setVisible(false);dispose();new MenuJFrame();}}// public boolean Select(String bookName) { // // return true; // }public static void main(String[] args) {BookManege book = new BookManege(); // book.addBook();book.DeleteBook();} } import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException;public class ReturnBook extends JFrame implements ActionListener {public void returnBook() {JFrame returnJFrame = new JFrame("還書(shū)");JPanel jPanelNorth = new JPanel(), jPanelCenter = new JPanel(), jPanelSouth = new JPanel(), jPanel = new JPanel();JPanel jPanelCenter1 = new JPanel(), jPanel1Center2 = new JPanel();JButton jButton = new JButton("還書(shū)");JButton jButton1 = new JButton("返回上一級(jí)目錄");JLabel jLabel1 = new JLabel("書(shū)籍名稱:");JTextField jTextField1 = new JTextField(15);jPanelNorth.add(jLabel1);jPanelNorth.add(jTextField1);JLabel jLabel2 = new JLabel("還書(shū)人:");JTextField jTextField2 = new JTextField(15);jPanelCenter1.add(jLabel2);jPanelCenter1.add(jTextField2);JLabel jLabel3 = new JLabel("歸還時(shí)間:");JTextField jTextField3 = new JTextField(15);jPanel1Center2.add(jLabel3);jPanel1Center2.add(jTextField3);jPanelCenter.add(jPanelCenter1, BorderLayout.NORTH);jPanelCenter.add(jPanel1Center2, BorderLayout.CENTER);jPanelSouth.add(jButton);jPanelSouth.add(jButton1);returnJFrame.add(jPanelNorth, BorderLayout.NORTH);returnJFrame.add(jPanelCenter, BorderLayout.CENTER);returnJFrame.add(jPanelSouth, BorderLayout.SOUTH);returnJFrame.setSize(500, 200);returnJFrame.setLocation(500, 500);returnJFrame.setResizable(false);returnJFrame.setVisible(true);jButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String bookName = jTextField1.getText();String borrowName = jTextField2.getText();String borrowTime = jTextField3.getText();DataBase1 dataBase1 = new DataBase1();try {dataBase1.returnBook(borrowName);dataBase1.UpDate(bookName, 2);JOptionPane.showMessageDialog(returnJFrame, "還書(shū)成功!");} catch (SQLException | ClassNotFoundException ex) {ex.printStackTrace();}}});jButton1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {returnJFrame.setVisible(false);dispose();new MenuJFrame();}});}@Overridepublic void actionPerformed(ActionEvent e) {} } import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class userDateBase extends DataBaseConnect {DataBaseConnect dataBaseConnect = new DataBaseConnect();private Connection connection;private PreparedStatement sql;private ResultSet resultSet;public boolean Select(String username) throws SQLException, ClassNotFoundException {connection = this.getConnection();sql = connection.prepareStatement("select *from library.db_賬戶");int flag = 0;try {resultSet = sql.executeQuery();while (resultSet.next()) {String user = resultSet.getString("username");if (user.equals(username))flag = 1;}} catch (Exception e) {e.printStackTrace();}if (flag == 0)return true;elsereturn false;}public boolean Insert(String user, String date, String email) throws SQLException, ClassNotFoundException {connection = this.getConnection();boolean result = Select(user);if (result) {sql = connection.prepareStatement("insert into library.db_userinformation(username, birthday, Email) values (?,?,?)");sql.setString(1, user);sql.setString(2, date);sql.setString(3, email);sql.executeUpdate();return true;} else {return false;}}} import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException;public class UserInformation extends JFrame implements ActionListener {Login login = new Login();String user = login.getUser();String password = login.getPassWord();private JFrame userJFrame = new JFrame("個(gè)人信息");private JLabel jLabel1 = new JLabel("用戶名:");private JTextField jTextField1 = new JTextField(user, 15);private JLabel jLabel2 = new JLabel("出生日期:");private JTextField jTextField2 = new JTextField(15);private JLabel jLabel3 = new JLabel("電子郵件:");private JTextField jTextField3 = new JTextField(15);private JPanel jPanel;private JButton jButton1 = new JButton("提交");private JButton jButton2 = new JButton("返回主菜單");// Login login=new Login();public void Information() {Init(); // String user = login.getUser(); // String password = login.getPassWord();JPanel jPanelNorth = new JPanel();jPanelNorth.add(jLabel1);jPanelNorth.add(jTextField1);userJFrame.add(jPanelNorth, BorderLayout.NORTH);JPanel jPanelCenter1 = new JPanel();jPanelCenter1.add(jLabel2);jPanelCenter1.add(jTextField2);JPanel jPanelCenter = new JPanel();jPanelCenter.add(jPanelCenter1, BorderLayout.NORTH);JPanel jPanelCenter2 = new JPanel();jPanelCenter2.add(jLabel3);jPanelCenter2.add(jTextField3);jPanelCenter.add(jPanelCenter2, BorderLayout.SOUTH);userJFrame.add(jPanelCenter, BorderLayout.CENTER);JPanel jPanelSouth = new JPanel();jPanelSouth.add(jButton1);jPanelSouth.add(jButton2);userJFrame.add(jPanelSouth, BorderLayout.SOUTH);jButton1.addActionListener((ActionListener) this);jButton2.addActionListener((ActionListener) this);jButton1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String username = jTextField1.getText();String data = jTextField2.getText();String email = jTextField3.getText();userDateBase userDateBase = new userDateBase();try {boolean result = userDateBase.Insert(username, data, email);if (result) {JOptionPane.showMessageDialog(userJFrame, "修改成功");} else {JOptionPane.showMessageDialog(userJFrame, "該用戶名已經(jīng)存在,請(qǐng)修改用戶名");}} catch (SQLException ex) {ex.printStackTrace();} catch (ClassNotFoundException ex) {ex.printStackTrace();}}});jButton2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {userJFrame.setVisible(false);dispose();MenuJFrame menuJFrame = new MenuJFrame();}});}public void Init() {userJFrame.setSize(400, 200);userJFrame.setLocation(500, 500);userJFrame.setVisible(true);userJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String[] args) {UserInformation userInformation = new UserInformation();userInformation.Information();}@Overridepublic void actionPerformed(ActionEvent e) {} }也不知道有沒(méi)有貼完,因?yàn)槭莻€(gè)聯(lián)系所以爛尾了
總結(jié)
以上是生活随笔為你收集整理的javaSwing+MySQL实现图书管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 状态模式(State)-七十二变
- 下一篇: 苹果手机 jquery点击事件无效