收藏 分销(赏)

简易图书管理系统.doc

上传人:精*** 文档编号:4122803 上传时间:2024-07-30 格式:DOC 页数:11 大小:50.54KB 下载积分:8 金币
下载 相关 举报
简易图书管理系统.doc_第1页
第1页 / 共11页
简易图书管理系统.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
本程序以java为设计语言,能够实现一个简单的图书管理系统,可以实现简单的增加图书,查询图书,删除图书的功能,其中用到数据库的连接,窗体的布局管理。 本程序有以下几个功能函数组成 所有模块都在名为bookmanager的包中 1:主函数mainframe.java 2:增加模块 adddialog.java 3:查询模块 searchdialog。java 4:查询结果模块 searchresult.java 5:书本类book.java 6:数据库连接类 dbcon.java 1. 主界面 2. 添加模块 3. 查询模块 4. 输出模块 源程序如下 1。mainframe。java package bookmanager; import javax.swing.*; import javax.swing。table。DefaultTableModel; import java。awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql。PreparedStatement; import java。sql.ResultSet; import java。sql.SQLException; import java.util.LinkedList; public class mainframe extends JFrame implements ActionListener{ private JToolBar tb; String []btntitle={"增加”,"查询”,”删除",”退出”}; String []tabeltitle={"图书编号",”书名",”定价","出版社"}; JButton btn[]=new JButton[4]; JTable table; DefaultTableModel model; public mainframe(){ super("图书管理系统"); //初始化各个按钮 tb=new JToolBar(”工具栏"); for(int i=0;i〈btntitle.length;i++){ btn[i]=new JButton(btntitle[i]); btn[i].addActionListener(this); tb.add(btn[i]); } //创建表模型 model=new DefaultTableModel(tabeltitle,10); table=new JTable(model); //设定单元格的高度 table.setRowHeight(25); add(tb,BorderLayout。NORTH ); add(new JScrollPane(table),BorderLayout.CENTER ); setSize(900,600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); setLocation(100,30); init(); } public void actionPerformed(ActionEvent e){ mainframe m=new mainframe(); Object o=e。getSource(); { if(o==btn[0]){ adddialog ad=new adddialog(m,25,25); init(); } if(o==btn[1]){ searchdialog sd=new searchdialog(m,25,25); sd.dialog.setVisible(true); init(); } if(o==btn[2]){ int result=JOptionPane。showConfirmDialog(null,”确实要删除该条图书信息吗?","确认”,JOptionPane。YES_NO_OPTION ,JOptionPane。QUESTION_MESSAGE ); if(result==0){ Connection con=dbcon.getconnectin(); Object ob=model。getValueAt(table.getSelectedRow(),0); dbcon.delete(con,ob); init(); } else { return ; } } if(o==btn[3]){ System。exit(0); } } } public void init(){ Connection con=dbcon。getconnectin(); LinkedList list=null; try { PreparedStatement stmt=con。prepareStatement(”select * from book"); ResultSet rs=stmt.executeQuery(); list=new LinkedList(); while(rs。next()){ String id=rs.getString(1); String name=rs。getString(2); String price=rs。getString(3); String publish=rs.getString(4); book b=new book(id,name,Float.valueOf(price),publish); list.add(b); } model。setRowCount(0); for(int i=0;i〈list.size();i++){ book b=(book)list.get(i); Object []str={b。getid(),b.getname(),b.getprice(),b。getpublish()}; model。addRow(str); } } catch (SQLException e) { // TODO Auto-generated catch block e。printStackTrace(); } } public static void main(String args[]){ new mainframe().show(); } } ********************************************************* ********************************************************* 2.Adddialog.java添加模块 package bookmanager; import java.awt。*; import java。awt。event.*; import java.util。LinkedList; import javax.swing。*; public class adddialog implements ActionListener { JLabel label[]=new JLabel[4]; JTextField txt[]=new JTextField[4]; String [] ltitle={”图书编号","图书名称",”单 价",”出 版 社”}; String []btitle={"上一个","下一个",”确 定","取 消”}; JButton btn[]=new JButton[4]; JDialog dialog; JPanel p; LinkedList list; public adddialog(JFrame f,int x,int y){ dialog=new JDialog(f,”增加”,true); dialog。setLocation(x,y); p=new JPanel(); list=new LinkedList(); // p。setBorder(BorderFactory。createTitledBorder("请选择操作”)); // p.setBorder(BorderFactory。createLineBorder(Color。red )); // p.setBorder(BorderFactory。createBevelBorder(0, Color.red , Color.green )); p.setBorder(BorderFactory。createBevelBorder(0, Color.red , Color。green , Color.blue , Color。yellow )); for(int i=0;i〈ltitle.length ;i++){ label[i]=new JLabel(ltitle[i]); label[i].setFont(new Font("宋体",Font.PLAIN ,18)); txt[i]=new JTextField(); btn[i]=new JButton(btitle[i]); btn[i].addActionListener(this); btn[i]。setFont(new Font("幼圆",Font。PLAIN ,15)); dialog.add(label[i]); dialog。add(txt[i]); dialog。add(btn[i]); } dialog.setLayout(null); p。setBounds(10,150,310,160); p。setBackground(Color.green ); label[0].setBounds(10,10,90,25);txt[0].setBounds(110,10,200,25); label[1].setBounds(10,45,90,25);txt[1].setBounds(110,45,200,25); label[2].setBounds(10,80,90,25);txt[2].setBounds(110,80,200,25); label[3].setBounds(10,115,90,25);txt[3]。setBounds(110,115,200,25); dialog。add(p); btn[0]。setBounds(60,180,80,25);btn[1].setBounds(175,180,80,25); btn[2]。setBounds(60,250,80,25);btn[3]。setBounds(175,250,80,25); dialog。setSize(400,400); dialog.show(); dialog.setDefaultCloseOperation(JFrame。DO_NOTHING_ON_CLOSE ); } public void actionPerformed(ActionEvent e){ int size=list。size(); // init(); // list.add(b); // if(e.getSource()==btn[0]){ // // book b1=(book)list。get(size); // size--; // txt[0].setText(b1.getid()); // txt[1].setText(b1。getname()); // txt[2]。setText(Float。toString(b1.getprice())); // txt[3].setText(b1.getpublish()); // } // if(e.getSource()==btn[1]){ // // book b2=(book)list.get(size); // size++; // txt[0]。setText(b2。getid()); // txt[1]。setText(b2。getname()); // txt[2].setText(Float.toString(b2.getprice())); // txt[3].setText(b2。getpublish()); // } if(e.getSource()==btn[2]){ String id=txt[0].getText(); String name=txt[1]。getText(); float price=getprice(txt[2].getText()); String publish=txt[3]。getText(); Object str[]={id,name,price,publish}; dbcon。insert(dbcon。getconnectin(), str); } } private float getprice(String str){ float price=0; try{ price=Float.valueOf(str); } catch(Exception ex){ JOptionPane。showMessageDialog(null,”价格必须是数字,请重新输入!","错误”,JOptionPane。WARNING_MESSAGE ); } return price; } //设定上一个,下一个按钮的可用性 //private void init(){ //if(list.size()==0) //{ // btn[0].setEnabled(false); // btn[1]。setEnabled(false); // } //else{ // btn[0]。setEnabled(true); // btn[1].setEnabled(true); //} //} } 3。searchdialog。java 查找模块 package bookmanager; import javax。swing.*; import java.awt。*; import java.awt。event.*; import java.sql.Connection; import java.sql.PreparedStatement; import java。sql。ResultSet; import java。sql。SQLException; import java.util.LinkedList; public class searchdialog implements ActionListener ,ItemListener{ JRadioButton []radio=new JRadioButton[3]; ButtonGroup group; String []rtitle={"图书编号”,”图书名称","出 版 社"}; String []btitle={” 确定(Yes)","取消(Esc)”}; JTextField txtfield[]=new JTextField[3]; JButton btn[]=new JButton[2]; JDialog dialog; searchresult st; public searchdialog(JFrame f,int x,int y){ //初始化单选按钮 group=new ButtonGroup(); st=new searchresult(); for(int i=0;i<radio.length;i++){ radio[i]=new JRadioButton(rtitle[i]); radio[i]。addActionListener(this); radio[i].setFont(new Font("宋体”,Font。PLAIN ,15)); radio[i]。addItemListener(this); group。add(radio[i]); txtfield[i]=new JTextField(); txtfield[i]。setEditable(false); } for(int i=0;i〈2;i++){ btn[i]=new JButton(btitle[i]); btn[i].addActionListener(this); btn[i].setFont(new Font("宋体",Font。PLAIN ,15)); } dialog =new JDialog(f,"查询”,true); //初始化 radio[0].setSelected(true); txtfield[0].setEditable(true ); dialog。setLocation(x,y); dialog.setLayout(null); //设定各个组件的边界 radio[0]。setBounds(10,10,90,25);txtfield[0]。setBounds(110,10,250,25); radio[1].setBounds(10,45,90,25);txtfield[1].setBounds(110,45,250,25); radio[2]。setBounds(10,80,90,25);txtfield[2]。setBounds(110,80,250,25); for(int i=0;i<radio。length ;i++){ dialog.add(radio[i]); dialog。add(txtfield[i]); } btn[0].setBounds(20,135,120,25);btn[1]。setBounds(200,135,120,25); dialog.add(btn[0]);dialog。add(btn[1]); dialog.setSize(400,250); dialog。setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE ); } public void actionPerformed(ActionEvent e){ if(e。getSource()==btn[0]){ st。init(); Connection con=dbcon.getconnectin(); PreparedStatement stmt=null; ResultSet rs=null; LinkedList list=new LinkedList(); try { if(radio[0].isSelected()){ stmt=con.prepareStatement(”select * from book where bid like '%”+txtfield[0]。getText()。trim()+"%'”); } if(radio[1]。isSelected()){ stmt=con.prepareStatement("select * from book where bname like ’%"+txtfield[1].getText()。trim()+”%’"); } if(radio[2].isSelected()){ stmt=con。prepareStatement("select * from book where bpublish like ’%”+txtfield[2].getText().trim()+"%'"); } rs=stmt。executeQuery(); while(rs。next()){ String id=rs.getString(1); String name=rs.getString(2); String price=rs.getString(3); String publish=rs。getString(4); book b=new book(id,name,Float。valueOf(price),publish); list。add(b); } for(int i=0;i<list.size();i++){ book b=(book)list.get(i); Object ob[]={b。getid(),b。getname(),b。getprice(),b。getpublish()}; st。model.addRow(ob); } JOptionPane.showMessageDialog(null,”总共找到"+list。size()+”条记录!”,"信息”,JOptionPane.INFORMATION_MESSAGE ); st。show(); } catch (SQLException e1) { // TODO Auto—generated catch block e1.printStackTrace(); } } } public void itemStateChanged(ItemEvent e){ for(int i=0;i<radio。length;i++){ if(radio[i].isSelected()){ txtfield[i]。setEditable(true); } else txtfield[i]。setEditable(false); } } } 4.searchresult。java查找结果 package bookmanager; import javax.swing。*; import javax.swing。table.DefaultTableModel; import java。awt.*; import java。awt。event。*; public class searchresult extends JFrame implements ActionListener{ JTable table; DefaultTableModel model; String []rtitle={”图书编号","图书名称”,"单价","出 版 社"}; JDialog dialog; public searchresult(){ super("查询结果”); model=new DefaultTableModel(rtitle,0); table=new JTable(model); add(new JScrollPane(table),BorderLayout。CENTER ); table.setRowHeight(25); table。setFont(new Font(”楷体",Font。PLAIN ,18)); setSize(600,400); } public void init(){ model。setRowCount(0); } public void actionPerformed(ActionEvent e){ //以后扩展用,暂不实现任何功能 } } ************************** 5。dbcon。java数据库连接类 package bookmanager; import java。io.*; import java。net.URL; import java.sql。*; import javax。swing。JOptionPane; public class dbcon { public final static Connection getconnectin(){ Connection con=null; try{ Class。forName(”com。microsoft.sqlserver.jdbc.SQLServerDriver”); String url=”jdbc:sqlserver://localhost:1433;integratedSecurity=true;"; con=DriverManager.getConnection(url); con。setCatalog("book”); } catch(ClassNotFoundException ex){ ex。printStackTrace(); } catch(SQLException ex){ ex。printStackTrace(); } return con; } //添加数据 public final static void insert(Connection con,Object obj[]){ PreparedStatement stmt=null; try { stmt=con.prepareStatement(”insert into book values(?,?,?,?)"); stmt。setString(1,obj[0]。toString()); stmt。setString(2,obj[1].toString()); stmt.setFloat(3,Float。valueOf(obj[2].toString())); stmt。setString(4,obj[3].toString()); stmt。execute(); JOptionPane.showMessageDialog(null,"添加成功!”,”操作提示”,JOptionPane。NO_OPTION ); } catch (SQLException e) { JOptionPane.showMessageDialog(null,”添加数据时发生错误!","信息",JOptionPane。INFORMATION_MESSAGE ); } } //查询数据 public final static ResultSet query(Connection con,Object ob){ ResultSet rs=null; PreparedStatement stmt=null; try { stmt=con.prepareStatement("select * from book”); rs=stmt。executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; } //删除数据 public final static void delete(Connection con,Object ob){ try { PreparedStatement stmt; stmt=con。prepareStatement("delete from book where bid=?”); stmt。setObject(1,ob); stmt.executeUpdate(); JOptionPane。showMessageDialog(null,”信息删除成功!","信息”,JOptionPane。INFORMATION_MESSAGE ); } catch (SQLException e) { // TODO Auto-generated catch block e。printStackTrace(); } finally{ } } } 6.书本类 book。java package bookmanager; public class book { private String id,name,publish; private float price; public book(String id,String name,float price,String publish){ this。id=id; this。name=name; this。price =price; this.publish =publish; } public String getid(){ return id; } public String getname(){ return name; } public float getprice(){ return price; } public String getpublish(){ return publish; } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服