您的位置:首页 > 编程语言 > Java开发

java图形界面------图书借阅系统

2017-04-17 13:35 337 查看
直接看代码:

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

10207
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);


运行结果显示:



完事!

附上源代码打包

http://download.csdn.net/detail/broccoli2/9816754
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java mysql 界面 图形 图书