java实现简单的图书借阅系统

网友投稿 565 2022-08-21


java实现简单的图书借阅系统

本文实例为大家分享了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))

{

xAAzRRRo 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;

/*!40000 ALTER TABLE `book` DISABLE KEYS */;

INSERT INTO `book` VALUES (662530,'c#',9),(662545,'python',12),(663520,'c++',6),(663548,'java',8);

/*!40000 ALTER TABLE `book` ENABLE KEYS */;

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;

/*!40000 ALTER TABLE `borrow` DISABLE KEYS */;

INSERT INTO `borrow` VALUES (1006,123456,662545),(1007,456789,663520),(1009,789456,662530),(1010,741852,662530);

运行结果显示:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java十分钟精通接口的使用与原理
下一篇:Java十分钟精通Lambda表达式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~