基于jdbc的图书馆借阅系统

前言

每位在学校学java的同学在期末会有java课程设计,而选题很可能就是图书管理系统,此篇文章可以帮助到你。能力有限,代码有bug可以下方的评论区指明

简介

图书馆管理系统分为用户登录和管理员登录,整个系统的控制是在控制台下进行操作的。

用户层

用户可以进行注册,登录,借书,查书,密码修改,还书等功能。

管理员层

管理员可以进行对管理书籍包括新书上架,修改库存信息等功能。

系统本身

系统本身可以根据用户是否逾期进行锁定禁止借书的功能等。

需要掌握的java知识

java基础语法,容器(list),jdbc,sql语句。

po层代码

/**
 * 
 * 对数据库的操作进行单独处理,更多的逻辑更改在更高的逻辑层编写。降低耦合
 *
 */
public class LibararyDao {
   

    /**
     * 注册图书
     * @param user 注册图书信息
     * @return
     */
    public  boolean addBook(Bookinfo bookinfo){

        try {
            Connection con =JDBCutil.creatConnection();
            String sql = "insert into bookinfo (bookname,zuozhe,shuliang,shengyushuliang,date)"
                    + " values (?,?,?,?,?) ";
            PreparedStatement pre =con.prepareStatement(sql);
            pre.setString(1, bookinfo.getBookname());
            pre.setString(2, bookinfo.getZuozhe());
            pre.setInt(3, bookinfo.getShuliang());
            pre.setInt(4, bookinfo.getShuliang());
            pre.setDate(5, new java.sql.Date(bookinfo.getData().getTime()));
            pre.execute();

        } catch (SQLException e) {
            System.out.println("图书注册失败");
            e.printStackTrace();
            return false;
        }
        return true;
    }

    /**
     * 注册账号
     * @param user 注册信息
     * @return
     */
    public  boolean addUser(User user){

        try {
            Connection con =JDBCutil.creatConnection();
            String sql = "insert into userinfo (username,password,books) values (?,?,0) ";
            PreparedStatement pre =con.prepareStatement(sql);
            pre.setString(1, user.getUsername());
            pre.setString(2, user.getPassword());
            pre.execute();

        } catch (SQLException e) {
            System.out.println("注册失败");
            e.printStackTrace();
            return false;
        }
        return true;
    }


    /**
     * 查询用户
     * @param user 信息
     * @return
     */
    public ResultSet  queryUser(User user){

        try {
            Connection con =JDBCutil.creatConnection();
            String sql = "select * from userinfo where username = ? ";
            PreparedStatement pre;
            pre = con.prepareStatement(sql);
            pre.setString(1, user.getUsername());
            ResultSet r =pre.executeQuery();
            return r;
        } catch (SQLException e) {
            System.out.println("查询失败");
            e.printStackTrace();
            return null;
        }
    }


    /**
     * 更新持有书
     * @param user 信息
     * @return
     */
    public boolean  updateUserbooks(User user){

        try {
            Connection con =JDBCutil.creatConnection();
            String sql = "update userinfo set books = ? where username = ? ";
            PreparedStatement pre;
            pre = con.prepareStatement(sql);
            pre.setInt(1, user.getBooks());
            pre.setString(2, user.getUsername());
            int r =pre.executeUpdate();
            if(r>0){
                return true;
            }else{
                return false;
            }
        } catch (SQLException e) {
            System.out.println("查询失败");
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 借书表中插入
     * @param username 借书人
     * @param bookname 书名
     * @return
     */
    public boolean addborrowinfo(String username,String bookname){
        try {
            Connection con =JDBCutil.creatConnection();
            String sql = "insert into borrowinfo (username,bookname,borrowdate,returndate)"
                    + " values (?,?,?,?) ";
            PreparedStatement pre;
            pre = con.prepareStatement(sql);
            pre.setString(1, username);
            pre.setString(2, bookname);
            pre.setDate(3, new java.sql.Date(new Date().getTime()));
            pre.setDate(4, new java.sql.Date(DateUtil.addMonth(new Date()).getTime()));
            pre.execute();

        } catch (SQLException e) {
            System.out.println("借书失败");
            e.printStackTrace();
            return false;
        }
        return true;
    }

    /**
     * 查书
     * @param bookname 书名
     * @return
     */
    public ResultSet queryBook(String bookname){
        try {
            Connection con =JDBCutil.creatConnection();
            String sql = "select * from bookinfo where bookname ='"+bookname+"'";
            PreparedStatement pre;
            pre = con.prepareStatement(sql);
            ResultSet r =pre.executeQuery();
            return r;
        }
        catch (SQLException e) {
            System.out.println("借书失败");
            e.printStackTrace();
            return null;
        }}
    /**
     * 查询所有的书籍
     * @return
     */
    public ResultSet queryAllBook(){
        try {
            Connection con =JDBCutil.creatConnection();
            String sql = "select * from bookinfo ";
            PreparedStatement pre;
            pre = con.prepareStatement(sql);
            ResultSet r =pre.executeQuery();
            return r;
        }
        catch (SQLException e) {
            System.out.println("借书失败");
            e.printStackTrace();
            return null;
        }
    }
    /**
     * 分页 
     * @param page
     * @return
     */
        public ResultSet querySubBookInfo(int page){
            try {

                Connection con =JDBCutil.creatConnection();
                PreparedStatement pre;
                String sql = "select * from bookinfo  limit ?,5 ";

                pre = con.prepareStatement(sql);
                pre.setInt(1, page);
                ResultSet r =pre.executeQuery();

                return r;
            }
            catch (SQLException e) {
                System.out.println("借书失败");
                e.printStackTrace();
                return null;
            }


    }
    /**
     * 数据页数  五条数据为一组
     * @return
     */
    public int  queryPageInfo(){

        try {
            int zongshu = 0;
            Connection con =JDBCutil.creatConnection();
            String sql1 = "select count(id) as cou from bookinfo ";

            Statement  sta =con.createStatement();
            ResultSet  res =sta.executeQuery(sql1);
            if(res.next())
            {
                zongshu = res.getInt("cou");
                if(zongshu == 0)return 0;
            }
            int a =0;
            if(zongshu%5==0){
                a = zongshu/5;
            }else{
                a = zongshu/5+1;
            }

            return a;
        }
        catch (SQLException e) {
            System.out.println("借书失败");
            e.printStackTrace();
            return -1;
        }

    }


    /**
     * 更新剩余数量
     * @param bookname 书名
     * @param sysl 数量
     * @return
     */
    public boolean updateBookinfo(String bookname,int sysl){
        try {
            Connection con =JDBCutil.creatConnection();

            String sql = "update bookinfo set shengyushuliang = ? where bookname = ?";
            PreparedStatement pre;
 
  • 8
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值