图书管理系统数据库版

本文介绍了一个图书管理系统的详细设计过程,包括需求分析、数据库设计、实体类定义、业务逻辑实现及系统交互流程。系统具备图书与读者管理功能,并支持登录与注册。
部署运行你感兴趣的模型镜像
1、系统进行一个分析


            图书管理,
                    添加图书  、修改图书、删除图书、查看图书
            读者管理,
                    读者添加,读者删除,读者基本信息的修改,读者查看列表,  借书,还书
            系统管理
                    注册 ,登录,  设置管理员

2、进行数据库表创建

           图书表,
DROP TABLE IF EXISTS `book_tb`;
CREATE TABLE `book_tb` (
  `b_id` int(11) NOT NULL AUTO_INCREMENT,
  `b_name` varchar(32) NOT NULL,
  `b_author` varchar(20) NOT NULL,
  `b_press` varchar(32) NOT NULL,
  `b_price` double(32,0) DEFAULT NULL,
  `b_number` int(11) DEFAULT NULL,
  PRIMARY KEY (`b_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

           读者表(用户),
DROP TABLE IF EXISTS `read_tb`;
CREATE TABLE `read_tb` (
  `r_id` int(11) NOT NULL AUTO_INCREMENT,
  `r_name` varchar(32) DEFAULT NULL,
  `r_account` varchar(32) NOT NULL,
  `r_password` varchar(32) NOT NULL,
  `r_type` int(11) DEFAULT NULL,
  PRIMARY KEY (`r_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
           读者和图书之间的关系表,
-- ----------------------------
-- Table structure for read_book_tb
-- ----------------------------
DROP TABLE IF EXISTS `read_book_tb`;
CREATE TABLE `read_book_tb` (
  `b_id` int(11) NOT NULL,
  `r_id` int(11) NOT NULL,
  PRIMARY KEY (`b_id`,`r_id`),
  KEY `fk_rb_rid` (`r_id`),
  CONSTRAINT `fk_rb_bid` FOREIGN KEY (`b_id`) REFERENCES `book_tb` (`b_id`),
  CONSTRAINT `fk_rb_rid` FOREIGN KEY (`r_id`) REFERENCES `read_tb` (`r_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



3、创建对应数据库表的实体类

          图书类
public class Book {
    private  int   id;
    private  String name;
    private  String author;
    private  String press;
    private  double price;
    private  int  number;
}
          读者类
public class Reader {
    private  int  id;
    private  String  name;
    private  String  account;
    private  String  password;
    private  int  type;
}
          图书管
/**
* 描述图书管
* @author Administrator
*
*/
public class Bsm {
    private  Scanner  sc = new Scanner(System.in);
    private  JdbcTemplate  jt = new  JdbcTemplate();
    /**
     * 登录
     * @return
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public  Reader  login() {
        System.out.println("请输入账号密码:");
        String  account = sc.next();
        String  password = sc.next();
        String sql  = "select * from  read_tb where r_account=? and r_password=?";
        List  list = new ArrayList();
        list.add(account);
        list.add(password);
        ResultSet rs = jt.query(sql, list);
        Reader r  =  null;
        try {
            if(rs.next()) {
                r = new Reader(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return r;
    }
    /**
     * 注册
     */
    public  boolean  register() {
        System.out.println("请输入读者信息:账号,密码");
        String  account = sc.next();
        String  password = sc.next();
        String sql = "insert into read_tb (r_account,r_password) values(?,?)";
        List  list = new ArrayList();
        list.add(account);
        list.add(password);
        boolean isok =  jt.updateData(sql,list);
        jt.closeRes();
        return isok;
    }

}
        


4、创建这个系统的业务逻辑类
          测试类(程序开始的地方)
package com.hyserver.bsm.action;
import java.util.Scanner;
import com.hyserver.bsm.model.Reader;
/**
 * 程序开始的地方
 * @author Administrator
 */
public class Test {
    public static void main(String[] args) {
       // 可以获得控制台输入的工具
       Scanner  sc = new  Scanner(System.in);
       Bsm   bsm = new Bsm();
       // 判断是否退出系统
       int  flag  = 0;
       do {
           System.out.println("hyserver图书管理系统: 1、登录  2、注册");
           int type=sc.nextInt();
           if(type==2) {
               //注册
               boolean isok = bsm.register();
               if(isok)
                  System.out.println("注册成功");
               else
                  System.out.println("注册失败");
           }else if(type==1) {
               // 登录
               Reader loginR = bsm.login();
               System.out.println("欢迎"+loginR.getName()+"登录hyserver");
           }
           System.out.println("是否要退出系统!0/1");
           flag = sc.nextInt();
           if(flag!=0) {
               // 跳出循环 就是退出系统
               break;
           }
       }while(flag==0);
       System.out.println("欢迎下次再来!");
    }
}


5、在登录成功以后,我们要展现的是,对应的管理模块。

    图书管理,
     读者管理,
    
/**
     * 读者的管理
     * @param loginR
     * @throws SQLException
     */
    private  static  void  readManager(Reader loginR) throws SQLException {
         System.out.println("1、修改  2、删除  3、添加 4、查看");
         int type = sc.nextInt();
         if(type == 1 ) {
             System.out.println("请输入要查看的读者编号:");
             int  rid = sc.nextInt();
             queryReader(rid);
             //修改
             System.out.println("请再次输入读者信息,不包括编号");
             String name = sc.next();
             String account = sc.next();
             String password = sc.next();
             int rtype = sc.nextInt();
             String sql = "update read_tb  set r_name = ? ,r_account=?,r_password=? ,r_type=? where r_id =?";
             List  params = new  ArrayList();
             params.add(name);
             params.add(account);
             params.add(password);
             params.add(rtype);
             params.add(rid);
             boolean isok = jt.updateData(sql, params);
             jt.closeRes();
             System.out.println("修改成功");
            
         }else if(type==4) {
             System.out.println("请输入要查看的读者编号:");
             int  rid = sc.nextInt();
             queryReader(rid);
         }
    }

/**
     * 根据读者id 查看这个读者信息
     * @throws SQLException
     */
    private  static void  queryReader(int rid) throws SQLException {
         String  sql = "select * from  read_tb where  r_id = "+rid;
         ResultSet rs =jt.query(sql);
         while(rs.next()) {
             System.out.println(rs.getInt(1)+"---姓名"+rs.getString(2)+"---账号:"+rs.getString(3)+"密码:"+rs.getString(4)+"---"+rs.getInt(5));
         }
    }



      系统管理。
   

6、系统管理的设置管理员。
/**
     * 系统管理
     */
    private   static  void  sysManager(Reader loginR) {
       System.out.println("请输入要设置的读者编号:");
       int  rid = sc.nextInt();
       String sql = "update  read_tb set r_type = 1 where r_id = "+rid;
       boolean isok = jt.updateData(sql);
       jt.myCommit();
       System.out.println("设置成功");
       jt.closeRes();
    }


您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值