圖書治理體系java版。本站提示廣大學習愛好者:(圖書治理體系java版)文章只能為提供參考,不一定能成為您想要的結果。以下是圖書治理體系java版正文
本文的目標就是經由過程圖書治理體系控制數據庫編程技巧,能准確銜接數據庫,能對數據庫中信息停止查詢、拔出、刪除、修正。
內容:在數據庫中創立一張書目信息表,包含書名、作者、出書社、出書日期、書號、價錢字段。設計一個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); } } }
法式運轉成果:
主界面:
查詢界面:
添加圖書界面:
修正界面:
刪除操作:
數據庫界面:
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。