⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 book.java

📁 图书管理设计文档
💻 JAVA
字号:
/* * Book.java * 说明:图书档案 * 编写:倪少春 * Created on 2005年1月1日, 上午9:13 */public class Book extends javax.swing.JInternalFrame {    private int rowCount=1;//行数    private final int colCount=6;//列数    private Object[][] ob=null;    private DataConnect dc=null;//自定义数据库连接程序    //自定义MODEL用在JTable    private class MyTable extends javax.swing.table.DefaultTableModel         {        private Class[] types =null;        private boolean[] canEdit;        public MyTable(Object[][] ob)            {            super(ob,new String[]                {"图书ID", "图书名", "出版社", "作者", "条码" ,"类名"});            types= new Class[6];             try                {                types[0]=Class.forName("java.lang.Integer");                types[1]=Class.forName("java.lang.String");                types[2]=Class.forName("java.lang.String");                types[3]=Class.forName("java.lang.String");                types[4]=Class.forName("java.lang.String");                types[5]=Class.forName("java.lang.String");                }            catch(ClassNotFoundException e)                {                System.out.println("类路径安装错误");                }            canEdit= new boolean [] {                false, true, true, true, true, false                };            }        public Class getColumnClass(int columnIndex)             {            return types [columnIndex];            }        public boolean isCellEditable(int rowIndex, int columnIndex)             {                return canEdit [columnIndex];            }        };    private MyTable mytable;    //刷新类别list    private void sort_Refresh()        {        try            {            java.sql.Statement stmt=dc.getStatement();            String strSql="SELECT name FROM BookSort ORDER BY id";            java.sql.ResultSet rs=stmt.executeQuery(strSql);            String strSort="";            while(rs.next())                strSort=strSort+"#"+rs.getString(1);            if(strSort!=null)                {                strSort="所有类别"+strSort;                String[] strList=strSort.split("#");                class AM extends javax.swing.AbstractListModel                     {                    String[] strings;                    public AM(String[] strList)                        {                        strings=strList;                        }                    public int getSize() { return strings.length; }                    public Object getElementAt(int i) { return strings[i]; }                    };                jl_sort.setModel(new AM(strList));                }            }        catch(java.sql.SQLException sqle)            {            javax.swing.JOptionPane.showMessageDialog(this,"类别刷新出错");            }        }        private void book_Refresh(String sortName)        {        String strSql=            "SELECT Book.id," +            "Book.name," +            "Book.author," +            "Book.book_concern," +            "Book.tm," +            "BookSort.name as SortName " +            "FROM Book,BookSort WHERE Book.sortId=BookSort.id";        String strRows=            "SELECT count(Book.id) " +            "FROM Book,BookSort WHERE Book.sortId=BookSort.id";        if(sortName!=null)            {            strSql=strSql+" AND BookSort.name='"+sortName.trim()+"'";            strRows=strRows+" AND BookSort.name='"+sortName.trim()+"'";            }        try            {            java.sql.Statement stmt=dc.getStatement();            java.sql.ResultSet rs=stmt.executeQuery(strRows);            rs.next();            rowCount=rs.getInt(1);            ob=new Object[rowCount][colCount];            if(rowCount!=0)                rs=stmt.executeQuery(strSql);            for(int i=0;i<ob.length;i++)                {                if(rs.next()==false)break;                ob[i][0]=new Integer(rs.getInt(1));//id                ob[i][1]=rs.getString(2);//书名                ob[i][2]=rs.getString(3);//作者                ob[i][3]=rs.getString(4);//出版社                ob[i][4]=rs.getString(5);//条码                ob[i][5]=rs.getString(6);//类名                }            mytable=new MyTable(ob);            jtb_book.setModel(mytable);            }        catch(java.sql.SQLException sqle)            {            javax.swing.JOptionPane.showMessageDialog(this,"图书表刷新错误");            }                }    private void button_Refresh()        {        boolean b=true;        if(jl_sort.getSelectedIndex()==0)            b=false;        jb_insert.setEnabled(b);        jb_delete.setEnabled(b);        jb_save.setEnabled(b);        }    public Book(DataConnect dc) {        initComponents();        this.dc=dc;        sort_Refresh();        jl_sort.setSelectedIndex(0);        this.jl_sortMouseClicked(null);    }    private void initComponents() {//GEN-BEGIN:initComponents        jToolBar1 = new javax.swing.JToolBar();        jb_insert = new javax.swing.JButton();        jb_save = new javax.swing.JButton();        jb_delete = new javax.swing.JButton();        jb_Refresh = new javax.swing.JButton();        jl_sort = new javax.swing.JList();        jScrollPane1 = new javax.swing.JScrollPane();        jtb_book = new javax.swing.JTable();        setClosable(true);        setResizable(true);        setTitle("\u56fe\u4e66\u6863\u6848");        jb_insert.setText("\u63d2\u884c");        jb_insert.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                jb_insertMouseClicked(evt);            }        });        jToolBar1.add(jb_insert);        jb_save.setText("\u4fdd\u5b58");        jb_save.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                jb_saveMouseClicked(evt);            }        });        jToolBar1.add(jb_save);        jb_delete.setText("\u5220\u884c");        jToolBar1.add(jb_delete);        jb_Refresh.setText("\u5237\u65b0");        jb_Refresh.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                jb_RefreshMouseClicked(evt);            }        });        jToolBar1.add(jb_Refresh);        getContentPane().add(jToolBar1, java.awt.BorderLayout.NORTH);        jl_sort.setModel(new javax.swing.AbstractListModel() {            String[] strings = { "所有类别" };            public int getSize() { return strings.length; }            public Object getElementAt(int i) { return strings[i]; }        });        jl_sort.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                jl_sortMouseClicked(evt);            }        });        getContentPane().add(jl_sort, java.awt.BorderLayout.WEST);        jtb_book.setModel(new javax.swing.table.DefaultTableModel(            new Object [][] {                {null, null, null, null, null, null},                {null, null, null, null, null, null},                {null, null, null, null, null, null},                {null, null, null, null, null, null}            },            new String [] {                "图书ID", "图书名", "作者", "出版社", "条码", "类名"            }        ) {            Class[] types = new Class [] {                java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class            };            boolean[] canEdit = new boolean [] {                false, true, true, true, true, true            };            public Class getColumnClass(int columnIndex) {                return types [columnIndex];            }            public boolean isCellEditable(int rowIndex, int columnIndex) {                return canEdit [columnIndex];            }        });        jScrollPane1.setViewportView(jtb_book);        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);        pack();    }//GEN-END:initComponents    private void jb_insertMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jb_insertMouseClicked        //插行        jb_saveMouseClicked(null);        javax.swing.ListModel lm=jl_sort.getModel();        Object [][] old= ob;        rowCount=rowCount+1;        ob=new Object[rowCount][colCount];        for(int i=0;i<old.length;i++)            for(int j=0;j<old[0].length;j++)                ob[i][j]=old[i][j];        //计算当前ID最大值        try            {            java.sql.Statement ps=dc.getStatement();            java.sql.ResultSet rs=ps.executeQuery(                "select max(id) from Book");rs.next();            int maxId=rs.getInt(1);            ob[ob.length-1][0]=new Integer(maxId+1);            ob[ob.length-1][ob[0].length-1]=lm.getElementAt(jl_sort.getSelectedIndex());            }        catch(java.sql.SQLException sqle)            {            javax.swing.JOptionPane.showMessageDialog                (this,"插行出现错误,错误提示:"+sqle,"错误提示",                javax.swing.JOptionPane.ERROR_MESSAGE);            }        mytable=new MyTable(ob);        jtb_book.setModel(mytable);    }//GEN-LAST:event_jb_insertMouseClicked    private void jb_saveMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jb_saveMouseClicked        javax.swing.table.TableModel tm=jtb_book.getModel();        try            {            java.sql.PreparedStatement ps_cx=dc.getPreparedStatement(                "SELECT COUNT(id) FROM Book WHERE id=?");            java.sql.PreparedStatement ps_update=dc.getPreparedStatement(                "UPDATE Book SET name=?,author=?,book_concern=?,tm=? where id=?");            java.sql.PreparedStatement ps_insert=dc.getPreparedStatement(                "INSERT INTO Book(id,name,author,book_concern,tm,sortid) " +                    "VALUES(?,?,?,?,?,?)");            java.sql.ResultSet rs=null;            java.sql.Statement stmt=dc.getStatement();            javax.swing.ListModel lm=jl_sort.getModel();            String sortName=                lm.getElementAt(jl_sort.getSelectedIndex()).toString();            rs=stmt.executeQuery(                "SELECT id from BookSort WHERE name='" +                sortName+"'");            if(rs.next()==false)                {                javax.swing.JOptionPane.showMessageDialog                    (this,"类别名为:'"+sortName+"'未查到");                return;                }            int sortId=rs.getInt(1);            rs=null;            stmt.close();            for(int i=0;i<tm.getRowCount();i++)                {                if( tm.getValueAt(i,0)!=null&&//id                    tm.getValueAt(i,1)!=null&&//name                    tm.getValueAt(i,2)!=null&&//author                    tm.getValueAt(i,3)!=null&&//book_concern                    tm.getValueAt(i,4)!=null&&//tm                    tm.getValueAt(i,5)!=null)//BookSort.name                    {                    int Id=Integer.parseInt(tm.getValueAt(i,0).toString());                    ps_cx.setInt(1, Id);                    rs=ps_cx.executeQuery();                    rs.next();                    if(rs.getInt(1)==1)                        {                        //insert                        ps_update.setString(1,tm.getValueAt(i,1).toString());                        ps_update.setString(2,tm.getValueAt(i,2).toString());                        ps_update.setString(3,tm.getValueAt(i,3).toString());                        ps_update.setString(4,tm.getValueAt(i,4).toString());                        ps_update.setInt(5,Id);                        ps_update.execute();                        }                    else                        {                        //update                        ps_insert.setInt(1,Id);                        ps_insert.setString(2,tm.getValueAt(i,1).toString());                        ps_insert.setString(3,tm.getValueAt(i,2).toString());                        ps_insert.setString(4,tm.getValueAt(i,3).toString());                        ps_insert.setString(5,tm.getValueAt(i,4).toString());                        ps_insert.setInt(6, sortId);                        ps_insert.execute();                        }                    }                else                    {                    javax.swing.JOptionPane.showMessageDialog                        (this,"录入表中含有未输入或未确认的信息\n请检查!");                    return;                    }                }            this.book_Refresh(sortName);            }        catch(java.sql.SQLException sqle)            {            javax.swing.JOptionPane.showMessageDialog                (this,"数据库操作错误"+sqle,"错误提示"+"\n"+sqle.getStackTrace(),                javax.swing.JOptionPane.ERROR_MESSAGE);            }    }//GEN-LAST:event_jb_saveMouseClicked    private void jb_RefreshMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jb_RefreshMouseClicked        sort_Refresh();        jl_sort.setSelectedIndex(0);        this.jl_sortMouseClicked(null);    }//GEN-LAST:event_jb_RefreshMouseClicked    private void jl_sortMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jl_sortMouseClicked        int index=jl_sort.getSelectedIndex();        javax.swing.ListModel lm=jl_sort.getModel();        if(index!=0)            {            String sortName=lm.getElementAt(index).toString();            this.book_Refresh(sortName);            }        else            {            this.book_Refresh(null);                }        button_Refresh();    }//GEN-LAST:event_jl_sortMouseClicked            // 变量声明 - 不进行修改//GEN-BEGIN:variables    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JToolBar jToolBar1;    private javax.swing.JButton jb_Refresh;    private javax.swing.JButton jb_delete;    private javax.swing.JButton jb_insert;    private javax.swing.JButton jb_save;    private javax.swing.JList jl_sort;    private javax.swing.JTable jtb_book;    // 变量声明结束//GEN-END:variables    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -