本文实例为大家分享了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);
运行结果显示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。