基于java的图书借阅管理系统,JAVA实现简单的图书管理系统
简单学习了Java的基础知识后,我做了一个非常简单的图书馆借阅系统。作为对所学知识的综合运用,希望大家点评不足,积极改正。
00-1010开始登录界面
登录界面
注册界面
登录后的个人主页
(本来想在最上面插个图,但是刚学swing,看不懂怎么插图。时间久了,还是没看懂,就暂时放下了。)
图书借阅页
输入关键字后的搜索结果
在还书界面,点击自动显示未还的图书。
查询未还图书的具体信息。
00-1010 1).下面简单说说对数据库的操作。注册用户时,在person_information表中插入个人信息。在注册的同时,为专属个人创建一个账户密码_编号_图书_信息表,记录未还图书。还有账户password _ ready _ book _ information表,记录还书的信息记录。借书时将图书的信息插入账户password _no_book_information表,还书时将还书的信息插入账户password _ ready _ book _ information表,删除账户password _no_book_information表中对应的借阅记录。
2).先做一个类初始化和数据库的连接,需要的时候方便调用。(涉及到数据库只是简单的增删查改。我只是个初学者,就不多解释了。)
包装书籍系统;导入Java . SQL . connection;导入Java . SQL . driver manager;导入Java . SQL . SQL exception;/* *用于初始化连接数据库*/公共类JDBC连接{公共静态连接getconnection()抛出sqlexception { try { class . forname( com . MySQL . JDBC . driver );} catch(ClassNotFoundException e){ e . printstacktrace();system . exit(0);} return driver manager . getconnection( JDBC : my SQL ://127 . 0 . 0 . 1:3306/book _ system?characterEncoding=UTF-8 , root , 123456789 );} }登录界面
主要观点:
登录时,在数据库中搜索该帐户是否存在。如果存在,进入首页。如果它不存在,将会提示您一个错误。注册时,将新用户的信息插入到数据库的用户列表中。
包装书籍系统;导入javax . swing . *;导入Java . SQL . resultset;导入Java . SQL . SQL exception;导入Java . SQL . statement;导入Java . awt . *;导入Java . awt . event . action event;导入Java . awt . event . action listener;/* *库登录界面的设计*包括登录和注册两部分* */@ suppresswarnings (serial )公共类jiemian扩展jframe//general page { public Jie mian(){ super();JLabel label=new JLabel(欢迎使用图书馆借阅系统);Label.setFont(新字体( ,0,25));label.setBounds(100,50,300,150);JButton button=new JButton( log in );button.addActionListener(新操作列表
tener() { @Override public void actionPerformed(ActionEvent e) { new dengLu(); } }); JButton button1=new JButton("注册"); button1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new zhuCe(); } }); Box box=Box.createVerticalBox(); box.add(button); box.add(Box.createVerticalStrut(50)); box.add(button1); box.setBounds(200,250,100,150); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setSize(500,500); setResizable(false); setLocation(700,200); setVisible(true); setLayout(null); add(label); add(box); } //注册页面 class zhuCe extends JFrame implements ActionListener { private JTextField zhangHao2; private JPasswordField password2; public zhuCe() { super(); Box box=Box.createHorizontalBox(); zhangHao2=new JTextField(15); box.add(new JLabel("账号:")); box.add(Box.createHorizontalStrut(10)); box.add(zhangHao2); Box box1=Box.createHorizontalBox(); password2=new JPasswordField(15); box1.add(new JLabel("密码:")); box1.add(Box.createHorizontalStrut(10)); box1.add(password2); JButton button=new JButton("确认"); button.addActionListener(this); JButton button1=new JButton("重置"); button1.addActionListener(this); Box box2=Box.createHorizontalBox(); box2.add(Box.createHorizontalStrut(30)); box2.add(button); box2.add(Box.createHorizontalStrut(70)); box2.add(button1); Box box3=Box.createVerticalBox(); box3.add(box); box3.add(Box.createVerticalStrut(10)); box3.add(box1); box3.add(Box.createVerticalStrut(10)); box3.add(box2); box3.setBounds(100,50,250,100); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setSize(500,250); setLayout(null); setVisible(true); setLocation(700,300); add(box3); } //事件处理 @Override public void actionPerformed(ActionEvent e) { String ret=e.getActionCommand(); if(ret.equals("确认")) { //需要插入一个检验数据合理性并更新数据库的操作 String insertzh=zhangHao2.getText(); String insertpw=new String(password2.getPassword()); insert(insertzh,insertpw); //点击确认后插入数据自动关闭 this.dispose(); } else { zhangHao2.setText(""); password2.setText(""); } } //处理注册账号密码并插入数据库 //这里只是简单地将账号密码插入数据库,没有考虑若账号不能与之前的用户相同还有不能用空格注册。 //处理空格的方法:提取原始账号密码,用trim()除去前后空格比较长度做第一轮筛选,再逐个字符进行比较 private void insert(String zh,String pw) { try( Statement statement=jdbcConnection.getConnection().createStatement(); ) { String sqlsentence="insert into person_information values("+zh+","+pw+",now());"; statement.execute(sqlsentence); String sqlsentence1="create table "+zh+pw+"_no_book_information(书名 varchar(20) not null," //建立一个个人的借书未还表 + "借书时间 datetime not null," + "借阅天数 int unsigned not null," + "应还时间 datetime not null);"; statement.execute(sqlsentence1); //建立已还书籍记录 String sqlsentence2="create table "+zh+pw+"_already_book_information(书名 varchar(20) not null," //建立一个个人的借书未还表 + "借书时间 datetime not null," + "借阅天数 int unsigned not null," + "应还时间 datetime not null," + "归还时间 datetime not null);"; statement.execute(sqlsentence2); } catch(SQLException e) { System.out.println("注册账号更新数据库时出错!"); e.printStackTrace(); System.exit(0); } } } //登录界面 class dengLu extends JFrame implements ActionListener { private JTextField zhangHao1; private JPasswordField password1; public dengLu () { super(); Box box=Box.createHorizontalBox(); zhangHao1=new JTextField(15); box.add(new JLabel("账号:")); box.add(Box.createHorizontalStrut(10)); box.add(zhangHao1); Box box1=Box.createHorizontalBox(); password1=new JPasswordField(15); box1.add(new JLabel("密码:")); box1.add(Box.createHorizontalStrut(10)); box1.add(password1); JButton button=new JButton("确认"); button.addActionListener(this); Box box2=Box.createHorizontalBox(); box2.add(Box.createHorizontalStrut(30)); box2.add(button); Box box3=Box.createVerticalBox(); box3.add(box); box3.add(Box.createVerticalStrut(10)); box3.add(box1); box3.add(Box.createVerticalStrut(10)); box3.add(box2); box3.setBounds(100,50,250,100); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setSize(500,250); setLayout(null); setVisible(true); setLocation(700,300); add(box3); } @Override public void actionPerformed(ActionEvent e) { //需要插入一个检验数据合理性并更新数据库的操作 String select=zhangHao1.getText(); String select1=new String(password1.getPassword()); //注意getPassword方法返回的时char数组 select(select,select1); //处理事件 } private void select(String zh1,String pw1) { try( Statement statement1=jdbcConnection.getConnection().createStatement(); ) { String sqlsentence1="select * from person_information where 账号="+zh1+";"; System.out.println(sqlsentence1); ResultSet set=statement1.executeQuery(sqlsentence1); if(!set.next()) { zhangHao1.setText("无此账号!"); //查询数据库发现无此账号记录 } else if(set.getString("密码").equals(pw1)) { new zhuYe(zh1,pw1); //这里应该新建一个账号主页 this.dispose(); //若输入正确的账号密码,则次登录窗口消失,进入账号主页 } else { zhangHao1.setText("密码错误!"); //显示密码错误 } } catch(SQLException e) { System.out.println("注册账号更新数据库时出错!"); e.printStackTrace(); System.exit(0); } } } &
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。