国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

圖書管理系統java版

2019-11-26 14:13:55
字體:
來源:轉載
供稿:網友

本文的目的就是通過圖書管理系統掌握數據庫編程技術,能正確連接數據庫,能對數據庫中信息進行查詢、插入、刪除、修改。
內容:在數據庫中創建一張書目信息表,包括書名、作者、出版社、出版日期、書號、價格字段。設計一個GUI界面進行書目管理。在該界面上有四個選項卡,分別是查詢、插入、刪除、修改。點擊查詢選項卡,出現的界面上有書名、作者、出版社、書號四個文本框,一個按鈕和一個只讀文本區。文本框內容可以為空,輸入相應的查詢信息后(例如根據書名查詢可以僅輸入書名),點擊界面上的“查詢”按鈕,可以在界面下方的文本區中顯示出符合條件的書目詳細信息。點擊插入選項卡,出現的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。在文本框中輸入信息后,點擊“插入”按鈕,該書目信息插入數據庫表中。點擊刪除選項卡,出現的界面上有書名文本框和一個按鈕,輸入書名后點擊“刪除”按鈕,該書目信息從數據庫表中刪除。點擊修改選項卡,出現的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。輸入的書名必須是已存在的,否則會彈出消息框顯示出錯信息。輸入信息后,點擊“修改”按鈕,數據庫表中的相應書目信息被修改為新值。
源碼:

BookInfo.java

 * 項目名稱:圖書管理系統  * 版本: 1.0  * 創建者: 張俊強  * 創建時間:2016/5/26  * */ package librarySystem;  import java.awt.*;  import javax.swing.*;  import java.awt.event.*; import java.sql.*;  @SuppressWarnings("serial") public class BookInfo extends JFrame implements ActionListener{  //主角面上的控件  private JLabel inputLabel;  private JTextField inputText;  private JButton searchBut;   private JTable bookTable;  private JScrollPane bookScroll;  private JButton addBut;  private JButton modifyBut;  private JButton deleteBut;  private JButton refreshBut;  private BookTableModel bookTableModel;  public static void main(String[] args) throws SQLException {   // TODO Auto-generated method stub   BookInfo bookInfo=new BookInfo();   bookInfo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   bookInfo.setBounds(350, 150, 600, 400);   bookInfo.setVisible(true); //  bookInfo.importSQL();//導出數據   bookInfo.setMinWindowLayout();//設置數據  }  public BookInfo() throws SQLException{   //創建主界面上的控件   inputLabel=new JLabel("請輸入書名:");   inputText=new JTextField(10);   searchBut=new JButton("查詢");   bookTableModel=new BookTableModel();      bookTable=new JTable(bookTableModel);   bookScroll=new JScrollPane(bookTable);      addBut=new JButton("添加");   modifyBut=new JButton("修改");   deleteBut=new JButton("刪除");   refreshBut=new JButton("刷新");   searchBut.addActionListener(this);   addBut.addActionListener(this);   refreshBut.addActionListener(this);   modifyBut.addActionListener(this);   deleteBut.addActionListener(this);   }   void setMinWindowLayout(){   //主界面布局   Container con1=new Container();   con1.setLayout(new FlowLayout());   con1.add(inputLabel);   con1.add(inputText);   con1.add(searchBut);   con1.add(refreshBut);   Container con2=new Container();   con2.setLayout(new FlowLayout());   con2.add(addBut);   con2.add(modifyBut);   con2.add(deleteBut);   this.setLayout(new BorderLayout());   this.add(con1,BorderLayout.NORTH);   this.add(bookScroll,BorderLayout.CENTER);   this.add(con2,BorderLayout.SOUTH);   this.validate();  }  @Override  public void actionPerformed(ActionEvent e) {   // TODO Auto-generated method stub   if(e.getSource()==searchBut){    if(!this.inputText.getText().equals("")){     String bookName=this.inputText.getText();     String sql="SELECT * FROM book_info WHERE book_name ='"+bookName+"'";     try {     bookTableModel=new BookTableModel(sql);     bookTable.setModel(bookTableModel);    } catch (SQLException e1) {     // TODO Auto-generated catch block     e1.printStackTrace();    }         }else{     JOptionPane.showMessageDialog(this,"輸入不能為空", "提示",JOptionPane.PLAIN_MESSAGE);    }   }   else if(e.getSource()==addBut){    @SuppressWarnings("unused")    AddBookDialog addWin=new AddBookDialog(this,"添加圖書",true);    this.refreshTable();   }   else if(e.getSource()==refreshBut){    this.refreshTable();   }   else if(e.getSource()==deleteBut){    int rowNum=bookTable.getSelectedRow();    if(rowNum<0||rowNum>bookTable.getRowCount()){        JOptionPane.showMessageDialog(this,"未選中", "提示",JOptionPane.PLAIN_MESSAGE);    }    else{     //System.out.print(bookName);     int n = JOptionPane.showConfirmDialog(null, "確認刪除嗎?", "確認刪除框", JOptionPane.YES_NO_OPTION);     if (n == JOptionPane.YES_OPTION) {      String bookNum=(String) bookTable.getValueAt(rowNum, 0);      String sql="DELETE FROM book_info WHERE book_num= '"+bookNum+"'";      bookTableModel.deleteBook(sql);      this.refreshTable();      JOptionPane.showMessageDialog(this,"刪除成功", "提示",JOptionPane.PLAIN_MESSAGE);     } else if (n == JOptionPane.NO_OPTION) {      return;     }    }   }   else if(e.getSource()==modifyBut){    bookTable.setModel(bookTableModel);    int rowNum=bookTable.getSelectedRow();    if(rowNum<0||rowNum>bookTable.getRowCount()){        JOptionPane.showMessageDialog(this,"未選中", "提示",JOptionPane.PLAIN_MESSAGE);    }    else{     @SuppressWarnings("unused")     ModifyBook modifyWin=new ModifyBook(this,"修改信息",true,bookTableModel,rowNum);     this.refreshTable();    }   }     }  public void refreshTable(){   BookTableModel searchBook;   try {    searchBook = new BookTableModel("SELECT * FROM book_info");    bookTable.setModel(searchBook);    bookTableModel=searchBook;   } catch (SQLException e1) {    // TODO Auto-generated catch block    e1.printStackTrace();   }  } } 

BookTableModel.java

package librarySystem; import java.sql.*; import java.util.*;  /*  * 圖書表模型  * */ import javax.swing.table.*; @SuppressWarnings("serial") public class BookTableModel extends AbstractTableModel{  //表的元素  private Vector<Vector<String>> rowData;  private Vector<String> colName;  // 數據庫  private PreparedStatement stmt;  private ResultSet result;  public BookTableModel(String sql) throws SQLException{   this.initData(sql);  }  public BookTableModel() throws SQLException{   this.initData("SELECT * FROM book_info");  }  public void initData(String sql) throws SQLException{   setRowData(new Vector<Vector<String>>());   setColName(new Vector<String>());   getColName().add("書號");   getColName().add("書名");   getColName().add("作者");   getColName().add("出版社");   getColName().add("出版時間");   getColName().add("價格");   /*    * 數據庫的導入    * */   try {    Class.forName("com.mysql.jdbc.Driver");   } catch (ClassNotFoundException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }   String url= "jdbc:mysql://localhost:3306/device";   String user="root";   String password="zjq1314520";   Connection con=DriverManager.getConnection(url,user,password);   stmt = con.prepareStatement(sql);   result=stmt.executeQuery();   importSQL();  }  void importSQL() throws SQLException{   // TODO Auto-generated method stub   @SuppressWarnings("unused")   boolean signNull=true;   while(result.next()){    Vector<String> item=new Vector<String>();    for(int i=1;i<7;i++){     item.add(result.getString(i));    }    getRowData().add(item);    signNull=false;   }   result.close();  }  @Override  public int getColumnCount() {//得到列數   // TODO Auto-generated method stub   return this.colName.size();  }   @Override  public int getRowCount() {//得到行數   // TODO Auto-generated method stub   return this.rowData.size();  }   @Override  public Object getValueAt(int row, int col) {//得到某行某列的數據   // TODO Auto-generated method stub   return (this.rowData.get(row)).get(col);  }   @Override  public String getColumnName(int column) {   // TODO Auto-generated method stub   return this.colName.get(column);  }    public Vector<Vector<String>> getRowData() {   return rowData;  }  public void setRowData(Vector<Vector<String>> rowData) {   this.rowData = rowData;  }  public Vector<String> getColName() {   return colName;  }  public void setColName(Vector<String> colName) {   this.colName = colName;  }  public void addBook(String sql){   try {    stmt.executeUpdate(sql);   } catch (SQLException e) {    // TODO Auto-generated catch block    e.printStackTrace();   } //  initData("SELECT * FROM book_info");  }  public void deleteBook(String sql){   try {    stmt.executeUpdate(sql);   } catch (SQLException e1) {    // TODO Auto-generated catch block    e1.printStackTrace();   }  } } 

AddBookDialog.java

package librarySystem;  import java.awt.*; import java.awt.event.*; import java.sql.SQLException;  import javax.swing.*;  @SuppressWarnings("serial") public class AddBookDialog extends JDialog implements ActionListener{  private JLabel bookNumLabel;  private JLabel bookNameLabel;  private JLabel bookWriterLabel;  private JLabel bookPublishLabel;  private JLabel bookPriceLabel;  private JLabel bookTimeLabel;  private JTextField bookNumText;  private JTextField bookNameText;  private JTextField bookWriterText;  private JTextField bookPublishText;  private JTextField bookPriceText;  private JTextField bookTimeText;    private JButton submitBut;  private JButton cancelBut;  public AddBookDialog(Frame owner,String title,boolean model){   //父窗口,窗口名,是否是模式窗口   super(owner,title,model);   bookNumLabel=new JLabel("書 號:");   bookNameLabel=new JLabel("書 名:");   bookWriterLabel=new JLabel("作 者:");   bookPublishLabel=new JLabel("出版社:");   bookPriceLabel=new JLabel("價 格:");   bookTimeLabel=new JLabel("出版時間:");      bookNumText=new JTextField(10);   bookNameText=new JTextField(10);   bookWriterText=new JTextField(10);   bookPublishText=new JTextField(10);   bookPriceText=new JTextField(10);   bookTimeText=new JTextField(9);      submitBut=new JButton("確認");   cancelBut=new JButton("取消");   submitBut.addActionListener(this);   cancelBut.addActionListener(this);   this.setBounds(350,150,400,260);   this.setResizable(false);   this.setLayout(new BorderLayout());   initLayout();  }  public void initLayout(){   Container[] con1=new Container[6];   for(int i=0;i<6;i++) con1[i]=new Container();   con1[0].setLayout(new FlowLayout());   con1[0].add(bookNumLabel);   con1[0].add(bookNumText);      con1[1].setLayout(new FlowLayout());   con1[1].add(bookNameLabel);   con1[1].add(bookNameText);      con1[2].setLayout(new FlowLayout());   con1[2].add(bookWriterLabel);   con1[2].add(bookWriterText);      con1[3].setLayout(new FlowLayout());   con1[3].add(bookPublishLabel);   con1[3].add(bookPublishText);      con1[4].setLayout(new FlowLayout());   con1[4].add(bookPriceLabel);   con1[4].add(bookPriceText);      con1[5].setLayout(new FlowLayout());   con1[5].add(bookTimeLabel);   con1[5].add(bookTimeText);      Container con2=new Container();   con2.setLayout(new BorderLayout());   con2.add(con1[0],BorderLayout.NORTH);   con2.add(con1[1],BorderLayout.CENTER);   con2.add(con1[2],BorderLayout.SOUTH);      Container con3=new Container();   con3.setLayout(new BorderLayout());   con3.add(con1[3],BorderLayout.NORTH);   con3.add(con1[4],BorderLayout.CENTER);   con3.add(con1[5],BorderLayout.SOUTH);      Container con4=new Container();   con4.setLayout(new FlowLayout());   con4.add(submitBut);   con4.add(cancelBut);   Container con5=new Container();   con5.setLayout(new BorderLayout());   con5.add(con2,BorderLayout.NORTH);   con5.add(con3,BorderLayout.CENTER);   con5.add(con4,BorderLayout.SOUTH);      this.add(con5,BorderLayout.CENTER);   this.validate();   this.setVisible(true);  }  @Override  public void actionPerformed(ActionEvent e) {   // TODO Auto-generated method stub   if(e.getSource()==submitBut){    if(bookNumText.getText().equals("")||bookNameText.getText().equals("")||      bookWriterText.getText().equals("")||bookPublishText.getText().equals("")||      bookPriceText.getText().equals("")||bookTimeText.getText().equals("")){     //System.out.println("輸入失敗");     JOptionPane.showMessageDialog(this,"輸入不能有空", "提示",JOptionPane.PLAIN_MESSAGE);    }    else{     //System.out.println("輸入成功");     String sql="insert into "       + "book_info(book_num,book_name,book_writer,publish_house,book_price,publish_time)"       + "values('"+bookNumText.getText()+"','"+bookNameText.getText()+"','"+bookWriterText.getText()+"','"+bookPublishText.getText()+"','"+bookPriceText.getText()+"','"+bookTimeText.getText()+"')";     try {      BookTableModel book=new BookTableModel();      book.addBook(sql);     } catch (SQLException e1) {      // TODO Auto-generated catch block      e1.printStackTrace();     }     JOptionPane.showMessageDialog(this,"添加成功", "提示",JOptionPane.PLAIN_MESSAGE);     this.setVisible(false);    }   }   if(e.getSource()==cancelBut){    this.setVisible(false);   }  } } 

ModifyBook.java

package librarySystem;  import java.awt.*; import java.awt.event.*; import java.sql.SQLException; import javax.swing.*;  @SuppressWarnings("serial") public class ModifyBook extends JDialog implements ActionListener{  private JLabel bookNumLabel;  private JLabel bookNameLabel;  private JLabel bookWriterLabel;  private JLabel bookPublishLabel;  private JLabel bookPriceLabel;  private JLabel bookTimeLabel;  private JTextField bookNumText;  private JTextField bookNameText;  private JTextField bookWriterText;  private JTextField bookPublishText;  private JTextField bookPriceText;  private JTextField bookTimeText;  private JButton submitBut;  private JButton cancelBut;  private BookTableModel bookModel;  private int rowNum;  public ModifyBook(Frame owner,String title,boolean type,BookTableModel model,int row){   super(owner,title,type);   bookModel=model;   rowNum=row;   bookNumLabel=new JLabel("書 號:");   bookNameLabel=new JLabel("書 名:");   bookWriterLabel=new JLabel("作 者:");   bookPublishLabel=new JLabel("出版社:");   bookPriceLabel=new JLabel("價 格:");   bookTimeLabel=new JLabel("出版時間:");      bookNumText=new JTextField(10);   bookNameText=new JTextField(10);   bookWriterText=new JTextField(10);   bookPublishText=new JTextField(10);   bookPriceText=new JTextField(10);   bookTimeText=new JTextField(9);      submitBut=new JButton("確認修改");   cancelBut=new JButton("取消");   submitBut.addActionListener(this);   cancelBut.addActionListener(this);   this.setBounds(350,150,400,260);   this.setResizable(false);   this.setLayout(new BorderLayout());   this.setValue();   this.initLayout();     }  public void initLayout(){   Container[] con1=new Container[6];   for(int i=0;i<6;i++) con1[i]=new Container();   con1[0].setLayout(new FlowLayout());   con1[0].add(bookNumLabel);   con1[0].add(bookNumText);      con1[1].setLayout(new FlowLayout());   con1[1].add(bookNameLabel);   con1[1].add(bookNameText);      con1[2].setLayout(new FlowLayout());   con1[2].add(bookWriterLabel);   con1[2].add(bookWriterText);      con1[3].setLayout(new FlowLayout());   con1[3].add(bookPublishLabel);   con1[3].add(bookPublishText);      con1[4].setLayout(new FlowLayout());   con1[4].add(bookPriceLabel);   con1[4].add(bookPriceText);      con1[5].setLayout(new FlowLayout());   con1[5].add(bookTimeLabel);   con1[5].add(bookTimeText);      Container con2=new Container();   con2.setLayout(new BorderLayout());   con2.add(con1[0],BorderLayout.NORTH);   con2.add(con1[1],BorderLayout.CENTER);   con2.add(con1[2],BorderLayout.SOUTH);      Container con3=new Container();   con3.setLayout(new BorderLayout());   con3.add(con1[3],BorderLayout.NORTH);   con3.add(con1[4],BorderLayout.CENTER);   con3.add(con1[5],BorderLayout.SOUTH);      Container con4=new Container();   con4.setLayout(new FlowLayout());   con4.add(submitBut);   con4.add(cancelBut);   Container con5=new Container();   con5.setLayout(new BorderLayout());   con5.add(con2,BorderLayout.NORTH);   con5.add(con3,BorderLayout.CENTER);   con5.add(con4,BorderLayout.SOUTH);   this.add(con5,BorderLayout.CENTER);   this.validate();   this.setVisible(true);  }  public void setValue(){   this.bookNumText.setText((String) bookModel.getValueAt(rowNum, 0));   this.bookNumText.setEditable(false);      this.bookNameText.setText((String) bookModel.getValueAt(rowNum, 1));   this.bookWriterText.setText((String) bookModel.getValueAt(rowNum, 2));   this.bookPublishText.setText((String) bookModel.getValueAt(rowNum, 3));   this.bookTimeText.setText((String) bookModel.getValueAt(rowNum, 4));   this.bookPriceText.setText((String) bookModel.getValueAt(rowNum, 5));   this.validate();  }  @Override  public void actionPerformed(ActionEvent e) {  // System.out.println(bookPriceText.getText());   // TODO Auto-generated method stub   if(e.getSource()==submitBut){    if(bookNumText.getText().equals("")||bookNameText.getText().equals("")||      bookWriterText.getText().equals("")||bookPublishText.getText().equals("")||      bookPriceText.getText().equals("")||bookTimeText.getText().equals("")){     //System.out.println("輸入失敗");     JOptionPane.showMessageDialog(this,"修改不能有空", "提示",JOptionPane.PLAIN_MESSAGE);    }    else{     int n = JOptionPane.showConfirmDialog(null, "確認修改嗎?", "確認修改框", JOptionPane.YES_NO_OPTION);     if (n == JOptionPane.YES_OPTION) {      String sql="UPDATE book_info SET book_name ='"+bookNameText.getText()+"', book_writer= '"+bookWriterText.getText()+"',publish_house='"+bookPublishText.getText()+"',book_price='"+bookPriceText.getText()+"',publish_time='"+bookTimeText.getText()+"' WHERE book_num = '"+bookNumText.getText()+"' ";      try {       BookTableModel book=new BookTableModel();       book.addBook(sql);      } catch (SQLException e1) {       // TODO Auto-generated catch block       e1.printStackTrace();      }      JOptionPane.showMessageDialog(this,"修改成功", "提示",JOptionPane.PLAIN_MESSAGE);      this.setVisible(false);     } else if (n == JOptionPane.NO_OPTION) {      return;     }    }   }   if(e.getSource()==cancelBut){    this.setVisible(false);   }  }  } 

程序運行結果:
主界面:

查詢界面:

添加圖書界面:

修改界面:

刪除操作:

數據庫界面:

關于管理系統的更多內容請點擊《管理系統專題》進行學習

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西昌市| 和田市| 鹤峰县| 丹棱县| 岗巴县| 镶黄旗| 延庆县| 武山县| 阆中市| 宁波市| 万安县| 滕州市| 苍山县| 特克斯县| 甘孜县| 手游| 南召县| 宁陕县| 吉林省| 洮南市| 福贡县| 潢川县| 漯河市| 阿拉善盟| 建昌县| 石嘴山市| 台安县| 全州县| 青龙| 青阳县| 新邵县| 桃江县| 谷城县| 岢岚县| 浦东新区| 万宁市| 朝阳县| 宁乡县| 迁安市| 迭部县| 江川县|