圖書治理體系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);
}
}
}
法式運轉成果:
主界面:
查詢界面:
添加圖書界面:
修正界面:
刪除操作:
數據庫界面:
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。