文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用java实现简单的图书借阅系统

2023-06-29 12:01

关注

这篇文章将为大家详细讲解有关如何使用java实现简单的图书借阅系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体内容如下

直接看代码:

package ttt;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.border.TitledBorder;import javax.swing.table.DefaultTableModel;public class Labmsys extends JFrame{        JTable booktable=null;        static DefaultTableModel bookmodel=null;        JTable borrowtable=null;        static DefaultTableModel bmodel=null;        JPanel j1=new JPanel();        JPanel j2=new JPanel();        JPanel j3=new JPanel();        JButton button1=new JButton("借书");        JButton button2=new JButton("还书");    public Labmsys()    {        this.setLayout(new BorderLayout());        this.add(j1,BorderLayout.WEST);        this.add(j2,BorderLayout.EAST);        this.add(j3,BorderLayout.CENTER);        j1.setBorder(new TitledBorder("图书借书表"));        j2.setBorder(new TitledBorder("图书库存表"));        this.booktable=bookIn();        this.borrowtable=borrowIn();        JScrollPane  jsp1=new JScrollPane(borrowtable);        JScrollPane  jsp2=new JScrollPane(booktable);        j1.add(jsp1);        j2.add(jsp2);        j3.add(button1);        j3.add(button2);        //添加借书监听器        button1.addActionListener(new ActionListener()        {            @Override            public void actionPerformed(ActionEvent e) {                // TODO Auto-generated method stub                int rowNum=booktable.getSelectedRow();                System.out.println(rowNum);                if(rowNum>=0)                {                    String isbn=booktable.getValueAt(rowNum, 0).toString();                    System.out.println(isbn);                    int count=Integer.parseInt((String) booktable.getValueAt(rowNum, 2));                    String s=JOptionPane.showInputDialog("请输入学号");                    if(count<=0)                        JOptionPane.showMessageDialog(null,"图书库存不足");                    else if (null==s)                        JOptionPane.showMessageDialog(null,"请输入学号");                    else{                        if(borrowBook(isbn,s))                        {                            System.out.println("yes");                            JOptionPane.showMessageDialog(null,"successful!");                        }                        else JOptionPane.showMessageDialog(null,"Wrong!");                    }                }else JOptionPane.showMessageDialog(null,"Choose book!");            }      });        //添加还书监听器        button2.addActionListener(new ActionListener()        {            @Override            public void actionPerformed(ActionEvent e) {                // TODO Auto-generated method stub                int rowNum=borrowtable.getSelectedRow();                System.out.println(rowNum);                if(rowNum>=0)                {                    String isbn=borrowtable.getValueAt(rowNum, 2).toString();                    String tablexh = borrowtable.getValueAt(rowNum, 1).toString();                    System.out.println(isbn);                    String xh=JOptionPane.showInputDialog("请输入学号");                    if (!xh.equals(tablexh))                        JOptionPane.showMessageDialog(null,"学号不正确");                    else{                        if(returnBook(isbn))                        {                            JOptionPane.showMessageDialog(null,"successful!");                        }                        else JOptionPane.showMessageDialog(null,"Wrong!");                    }                }else JOptionPane.showMessageDialog(null,"Choose book!");                }            });    }    public boolean borrowBook(String isbn, String s) {                int xh = Integer.parseInt(s);                int isbn2 =Integer.parseInt(isbn);                System.out.println("学号:"+xh);        boolean b=false;        String driver="com.mysql.jdbc.Driver";        String url="jdbc:mysql://localhost:3306/test";        String user="root";        String password="123456";        Connection conn=null;        Statement stmt=null;        try {                 Class.forName(driver);                conn = DriverManager.getConnection(url, user, password);                 stmt = conn.createStatement();                 System.out.println("isbn:"+isbn);               conn.setAutoCommit(false);               String sql1 = "update book set count=count-1 where isbn='"+isbn2+"'";               String sql2 = "insert into borrow(xh,isbn) values('"+xh+"','"+isbn2+"')";               stmt.executeUpdate(sql1);               stmt.executeUpdate(sql2);               System.out.println("isbn2:"+isbn2);               //stmt = (PreparedStatement) conn.prepareStatement("update book set count=count-1 where isbn=?");               conn.commit();               stmt.close();               conn.close();               b=true;        }        catch (Exception e) {                 try{                   conn.rollback();               }catch(Exception e1){e1.printStackTrace();}              }                return b;            }    private boolean returnBook(String isbn) {        int isbn2 =Integer.parseInt(isbn);           boolean b=false;           String driver="com.mysql.jdbc.Driver";           String url="jdbc:mysql://localhost:3306/test";           String user="root";           String password="123456";           Connection conn=null;           Statement stmt=null;           try {               Class.forName(driver);              conn = DriverManager.getConnection(url, user, password);               stmt = conn.createStatement();               conn.setAutoCommit(false);             stmt.executeUpdate("delete from borrow where isbn='"+isbn2+"'");             stmt.executeUpdate("update book set count=count+1 where isbn='"+isbn2+"'");             System.out.println("还书isbn2:"+isbn2);             conn.commit();             stmt.close();             conn.close();             b=true;             }           catch (Exception e) {                 try{                   conn.rollback();                   }catch(Exception e1){e1.printStackTrace();}}             return b;    }    private JTable borrowIn() {        // TODO Auto-generated method stub        String []head={"id","xh","ISBN"};        String [][]data=null;        bookmodel=new DefaultTableModel(data,head);        JTable t=new JTable(bookmodel);        String driver="com.mysql.jdbc.Driver";        String url="jdbc:mysql://localhost:3306/test";        String user="root";        String password="123456";        Connection conn=null;        Statement stmt=null;        ResultSet rs=null;        try {                 Class.forName(driver);                conn = DriverManager.getConnection(url, user, password);                 stmt = conn.createStatement();                 rs=stmt.executeQuery("select * from borrow");                String[] row=new String[3];               while(rs.next()){               row[0]=rs.getString(1);               row[1]=rs.getString(2);               row[2]=rs.getString(3);               bookmodel.addRow(row);               bookmodel.fireTableDataChanged(); }               rs.close();               stmt.close();               conn.close();}        catch (Exception e) {                 // TODO Auto-generated catch block                    System.out.println(e);                }                return t;    }    public  JTable bookIn() {        // TODO Auto-generated method stub        String []head={"ISBN","name","count"};        String [][]data=null;        bmodel=new DefaultTableModel(data,head);        JTable t=new JTable(bmodel);        String driver="com.mysql.jdbc.Driver";        String url="jdbc:mysql://localhost:3306/test";        String user="root";        String password="123456";        Connection conn=null;        Statement stmt=null;        ResultSet rs=null;        try {                 Class.forName(driver);                conn = DriverManager.getConnection(url, user, password);                 stmt = conn.createStatement();                 rs=stmt.executeQuery("select * from book");                String[] row=new String[3];               while(rs.next()){               row[0]=rs.getString(1);               row[1]=rs.getString(2);               row[2]=rs.getString(3);               bmodel.addRow(row);               bmodel.fireTableDataChanged(); }               rs.close();               stmt.close();               conn.close();}        catch (Exception e) {                 // TODO Auto-generated catch block                    System.out.println(e);                }        return t;      }    public static void main(String[] args) {        // TODO Auto-generated method stub        Labmsys n=new Labmsys();         n.setTitle("图书借阅管理系统");        n.setSize(1000,500);        n.setLocationRelativeTo(null);        n.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        n.setVisible(true);    }}

数据库:

---- Table structure for table `book`--DROP TABLE IF EXISTS `book`;CREATE TABLE `book` (  `ISBN` int(11) NOT NULL,  `name` varchar(50) NOT NULL,  `count` int(11) default NULL,  PRIMARY KEY  (`ISBN`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;---- Dumping data for table `book`--LOCK TABLES `book` WRITE;;INSERT INTO `book` VALUES (662530,'c#',9),(662545,'python',12),(663520,'c++',6),(663548,'java',8);;UNLOCK TABLES;---- Table structure for table `borrow`--DROP TABLE IF EXISTS `borrow`;CREATE TABLE `borrow` (  `id` int(11) NOT NULL auto_increment,  `xh` int(11) NOT NULL,  `isbn` int(11) NOT NULL,  PRIMARY KEY  (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;---- Dumping data for table `borrow`--LOCK TABLES `borrow` WRITE;;INSERT INTO `borrow` VALUES (1006,123456,662545),(1007,456789,663520),(1009,789456,662530),(1010,741852,662530);

运行结果显示:

如何使用java实现简单的图书借阅系统

关于“如何使用java实现简单的图书借阅系统”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯