评论

收藏

[Java] jdbc实现图书馆借阅系统

编程语言 编程语言 发布于:2021-09-18 17:56 | 阅读数:195 | 评论:0

这篇文章主要为大家详细介绍了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;
    pre = con.preparestatement(sql);
    pre.setint(1,sysl);
    pre.setstring(2, bookname);
 
    int r =pre.executeupdate();
 
    if(r>0){
    return true;
    }else{
    return false;
    }
  } catch (sqlexception e) {
    system.out.println("借书失败");
    e.printstacktrace();
    return false;
  }
  }
 
 
 
  /*public boolean querybook(string...strings){
    try {
    connection con =jdbcutil.creatconnection();
    string sql = "select bookname from bookinfo where 1=1 ";
 
    preparedstatement pre;
    pre = con.preparestatement(sql);
    resultset r =pre.executequery();
    if(r.next()){
      return true;
    }else{
      return false;
    }
    } catch (sqlexception e) {
    system.out.println("借书失败");
    e.printstacktrace();
    return false;
    }*/
  /**
   * 查询用户的所有的借阅信息 
   * @param username
   * @return
   */
  public resultset queryborrowinfo(string username){
 
  try {
    connection con =jdbcutil.creatconnection();
    string sql = "select * from borrowinfo where username = '"+username+"'";
    preparedstatement pre = con.preparestatement(sql);
    resultset r =pre.executequery();
    return r;
  } catch (sqlexception e) {
    system.out.println("查询失败");
    e.printstacktrace();
    return null;
  }
  }
  /**
   * 查询借阅信息
   * @param username
   * @return
   */
  public resultset queryborrowinfo(string username,string bookname){
 
  try {
    connection con =jdbcutil.creatconnection();
    string sql = "select * from borrowinfo where username = ? and bookname = ?";
    preparedstatement pre = con.preparestatement(sql);
    pre.setstring(1, username);
    pre.setstring(2, bookname);
    resultset r =pre.executequery();
    return r;
  } catch (sqlexception e) {
    system.out.println("查询失败");
    e.printstacktrace();
    return null;
  }
 
  }
  /**
   * 删除借书
   * @param username 人名
   * @param bookname 书名
   * @return
   */
  public boolean deleteborrowinfo(string username,string bookname){
 
  try {
    connection con =jdbcutil.creatconnection();
    string sql = "delete from borrowinfo where username = ? and bookname = ? ";
    preparedstatement pre = con.preparestatement(sql);
    pre.setstring(1, username);
    pre.setstring(2, bookname);
    pre.execute();
    return true;
  } catch (sqlexception e) {
    system.out.println("查询失败");
    e.printstacktrace();
    return false;
  }
  }
 
}
control层代码
/**
 * asdfasd 发斯蒂芬
 * 
 */
 
package library.controller;
 
import java.sql.resultset;
import java.sql.sqlexception;
import java.util.arraylist;
import java.util.list;
import java.util.scanner;
 
import library.dao.libararydao;
import library.po.bookinfo;
import library.po.borrowinfo;
import library.po.user;
 
public class bookcontroller {
  private static libararydao bookdao;
  private borrowinfo b;
  public bookcontroller() {
  if(bookdao == null) bookdao = new libararydao();
  }
 
  public static void main(string[] args) {
  //system.out.println(new bookcontroller().adduser(new user("123", "dvdf")));
    //system.out.println(new bookcontroller().borrowbook("123", new user("123", "dvdf")));
  // new bookcontroller().fenyeinfo(2);
 
 
  }
 
  /**
   * 用户登录
   * @param user 传过来的账号密码
   * @return 返回1为登陆成功 2为不存在 3异常
   */
  public int loginuser(user user){
 
  resultset rs =bookdao.queryuser(user);//验证用户是否存在
  try {
    if(rs!=null&&rs.next()){
    boolean b =rs.getstring("password").equals(user.getpassword());
    if(b){
      return 1;
    }
    }
    return 2;
  } catch (sqlexception e) {
    e.printstacktrace();
    return 3;
  }  
 
  }
 
  /**
   * 管理员登陆
   * @param user 传过来的账号密码
   * @return 返回1为登陆成功 2为不存在 3异常
   */
  public int loginguanli(user user){
 
  resultset rs =bookdao.queryuser(user);//验证管理员是否存在
  try {
    if(rs!=null&&rs.next()){
    boolean b =rs.getstring("password").equals(user.getpassword());
    int b1 = rs.getint("isguanli");//管理员标志位1
    if(b&&b1==1){
      return 1;
    }
    }return 2;
  } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    return 3;
  }  
 
  }
  /**
   * 查询书籍列表
   * @return 返回1为查询成功并已经输出 2为失败或其他
   */
  public int querybookinfo(){
 
  try {
    resultset r =bookdao.queryallbook();
    while(r!=null&&r.next()){
    system.out.println("书名"+r.getstring("bookname")+"作者"+
      r.getstring("zuozhe")+"总数"+r.getint("shuliang")+"剩余数量"+r.getint("shengyushuliang"));
    }
    if(r==null)return 2;
    return 1;
  } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    return 2;
  }
 
 
 
  }
  /**
   * 查询书籍数量和剩余数量
   * @return 返回1为查询成功并已经输出 2为失败或其他
   */
  public resultset querybookk(string bookname){
 
    resultset r =bookdao.querybook(bookname);
    return r;
 
  }
  /**
   * 查询书籍
   * @return 返回1为查询成功并已经输出 2为失败或其他
   */
  public int querybook(string bookname){
  try {
    resultset r =bookdao.querybook(bookname);
    while(r!=null&&r.next()){
    system.out.println("书名"+r.getstring("bookname")+"作者"+
      r.getstring("zuozhe")+"总数"+r.getint("shuliang")+"剩余数量"+r.getint("shengyushuliang"));
    }
    if(r==null)return 2;
    return 1;
  } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    return 2;
  }
 
  }
 
  /**
   * 加入新的图书信息
   * @param bookinfo 书籍的详细信息
   * @return 1成功 2失败
   */
  public int addbookinfo(bookinfo bookinfo){
  boolean b = bookdao.addbook(bookinfo);
  if(b)return 1;
  return 2;
  }
 
 
 
 
  /**
   * 注册用户
   * @param user
   * @return
   */
  public int adduser(user user){
  resultset rs =bookdao.queryuser(user);
  try {
 
    if(rs!=null&&!rs.next()){
    boolean b =bookdao.adduser(user);
    if(b)return 1; 
    }
  } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    return 3;
  }  
  return 2;
  }
 
  /**
   * 查询用户所有信息
   * @param user
   * @return
   */
  public int queryuser(user user){
  resultset r = bookdao.queryuser(user);
  try {
    if(r.next()){
    user.setbooks(r.getint("books"));
    system.out.println(user);
    return 1;
    }
    return 2;
 
  } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    return 2;
  }
 
 
  }
 
 
  /**
   * 借书 先检查书是否存在,再检查书籍是否有库存,然后检查是否已结借此书
   * 最后以上检查没有错误,就可以借书。 用户持有数量增加,借书信息详解录入,库存更新
   * 
   * 注意事项 
   * 1 resultset 默认指向数据前一个位置 必须 用 next 
   * 2 需要加入事务 防止出现错误造成数据表更新不一致
   * @param bookname 书名
   * @return
   */
  public string borrowbook(string bookname,user user){
  try {
    if(!bookdao.querybook(bookname).next()){
    return "借书失败-书籍不存在";}
 
    resultset querybookrs = bookdao.querybook(bookname);
    while(querybookrs.next()){
    int t = querybookrs.getint("shengyushuliang");
    if(t<1){return "库存不足";}
 
    resultset rs =bookdao.queryborrowinfo(user.getusername());
 
    if(rs!=null&&!rs.next()){
 
 
      //加入借阅详细信息
      boolean b1 =bookdao.addborrowinfo(user.getusername(), bookname);
 
 
      //更新借书数量
      resultset rs1 = bookdao.queryuser(user);
      rs1.next();
      user.setbooks(rs1.getint("books")+1);
      bookdao.updateuserbooks(user);
 
 
      //更新库存
      boolean b2 =bookdao.updatebookinfo(bookname, t-1);
      //system.out.println(b1+" "+b2);
 
      return b1?(b2?"借书成功":"借书失败"):("借书失败");
 
    }
     }
 
    return null;
 
  } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    return "借书失败-其他错误";
  }
 
 
  }
  /**还书
   * 更新用户持有数,归还书的库存,删除借书信息表中信息
   * @param user 更新数据数 
   * @param bookinfo 更新库存后的数
   * @return
   */
  public int returnbook(user user,string bookname){
 
  boolean b1 = bookdao.deleteborrowinfo(user.getusername(),bookname);
  boolean b2 = false;
  boolean b3 = false;
  try {
    //更新库存
    resultset r = bookdao.querybook(bookname);
    if(r.next()){
    int i = r.getint("shengyushuliang");
    b2 = bookdao.updatebookinfo(bookname,i+1);
    }
 
    //更新持有书数
    r = bookdao.queryuser(user);
    if(r.next()){
    int i = r.getint("books");
    user.setbooks(i-1);
    b3 =bookdao.updateuserbooks(user);
    }
 
    if(!b1||!b2||!b3){
    return 2;
    }
    return 1;
  } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    return 2;
  }
 
  }
 
 
 
  /**
   * 查询用户的借书情况
   * @param user 用户
   * @return 返回借阅信息
   */
  public list<borrowinfo> queryborrowinfo(user user){
 
 
  resultset r =  bookdao.queryborrowinfo(user.getusername());
  list<borrowinfo> l = new arraylist<borrowinfo>();
  try {
    while(r!=null&&r.next()){
 
    b = new borrowinfo();
    b.setusername(r.getstring("username"));
    b.setbookname(r.getstring("bookname"));
    b.setborrowdate(r.getdate("borrowdate"));
    b.setreturndate(r.getdate("returndate"));
    l.add(b);
 
    }
    return l;
  } catch (sqlexception e) {
 
    e.printstacktrace();
    return null;
  }
  }
  /**
   * 指定页码
   * @param age
   */
  public void fenyeinfo(int age){
  int i =bookdao.querypageinfo();
  system.out.println("总页数:"+i);
  try {
    if(i>0){
    resultset r = bookdao.querysubbookinfo((age-1)*5);
    while(r!=null&&r.next()){
      system.out.println("书名"+r.getstring("bookname")+"作者"+
      r.getstring("zuozhe")+"总数"+r.getint("shuliang")+"剩余数量"+r.getint("shengyushuliang"));  
      }
    }  
 
  } catch (sqlexception e) {
    e.printstacktrace();
  }
 
  }
  /**
   * 指定上下页
   * @param age
   */
  public void fenyeinfo(string age){
 
 
  }
 
  /**
   * 更新图书信息
   * 更新作者,库存,剩余数量,不更新日期,书名(不就是添加了新的书籍了吗)
   * 可更新任务可以多选
   * 
   * 书名进行判断是否存在
   * 库存和剩余数量进行逻辑上的验证
   */
  public void updatebookinfo(string bookname){
  scanner scan = new scanner(system.in);
 
  system.out.println("更新作者输入:1,跳过11");
  int i =scan.nextint();
  list<list<string>> list = new arraylist<list<string>>();
  list<string> list1 = null;
  if(i==1){
    string newbookname = scan.next();
    list1 = new arraylist<string>();
    list1.add("zuozhe");
    list1.add("'"+newbookname+"'");
    list.add(list1);
  }
  //如果更新了库存,剩余数量也会跟着更新 需要判断库存逻辑的正确性
  system.out.println("更新数量输入2,跳过22");
  int ii = scan.nextint();
  if(ii==2){
    system.out.println("请更新库存数量");
    int newsum = scan.nextint();
    //判断数量逻辑的正确性
    resultset r = querybookk(bookname);
    int oldsum=0;int sykc=0;//旧库存和剩余数量
    try {
    while(r.next()){
      oldsum = r.getint("shuliang");
      sykc = r.getint("shengyushuliang");
    }
    if(newsum>oldsum){
      sykc+=newsum-oldsum;//记录更新后的剩余数量
      //system.out.println("根据已有库存,库存总量为---"+newsum);
    }
    else if(newsum<oldsum&&newsum>=sykc){//如何新的库存少于就库存。判断新库存与剩余数量的关系
      sykc-=newsum;
    }else{
      system.out.println("输入错误");
      return ;
    }
 
 
 
    } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    }
 
 
 
    list1 = new arraylist<string>();
    list1.add("shuliang");
    list1.add(string.valueof(newsum));
    list.add(list1);
    list1 = new arraylist<string>();
    list1.add("shengyushuliang");
    list1.add(string.valueof(sykc));
    list.add(list1);
  }
  bookdao.updatebookinfo(list, bookname);
  }
 
}
view层
package library.view;
 
import java.sql.resultset;
import java.sql.sqlexception;
import java.util.arraylist;
import java.util.date;
import java.util.inputmismatchexception;
import java.util.list;
import java.util.scanner;
 
import library.controller.bookcontroller;
import library.po.bookinfo;
import library.po.borrowinfo;
import library.po.user;
 
/**
 * 视图类,也是界面的显示层。程序运行的入口
 * 想说的话:
 * 如果使用web作为v层,只需要把bookrun方法拆开就可以了。对应会话跟踪,把 private static user user 存入session对象就可以了
 * 框架的话用springmvc 。对于dao加入orm框架(hibernate ,mybatis)。整合起来也就是常见的ssm体系或ssh体系
 * 数据库的选择更是随你心情。mysql sqlserver 等等。
 * 项目bug仔细看的话很多。本意想给入门的同学一个思路方向。对于一些变量的命名请不要学我(偷懒),养成一个良好的
 * 习惯。祝你在编程的道路上越走越远!!
 */
public class view {
  //controller 业务控制类
  private static bookcontroller bookc = new bookcontroller();
  //登陆后的用户跟踪类似session
  private static user user;
  //控制主界面的循环
  private static boolean flag = true;
  //接受控制台输入
  private static scanner scan = new scanner(system.in);
 
  public static void main(string[] args) {
   bookrun();
  }
 
 
 
  //主界面  应该考虑其他输入的限定 (当输入字符时,系统停止运行)
  public static void bookrun(){
    try{
    do{
      system.out.println("欢迎来到图书借阅系统\n登陆输入: 1\n注册输入: 2\n管理员管理:3");
      int i1 = scan.nextint();
 
      switch (i1) {
      case 1://登陆逻辑
      system.out.println("输入账号");
      string username = scan.next();
      system.out.println("密码");
      string password = scan.next();
 
      int i =bookc.loginuser(new user(username, password));
 
      if(i==1){
 
        system.out.println("登陆成功");
        user = new user(username, password);
        loginsuccess(user);
 
      }else if(i!=1){
        system.out.println("登陆失败,检查密码或者账号");
        }
      break;
 
      case 2:
      //注册逻辑 可以添加验证密码 进行密码的确定  java api有把明文进行处理的方法,请自行搜索
      //还可以加入正则表达式进行账号的限定(对于特殊字符输入的处理等)
      system.out.println("输入申请账号");
      string username1 = scan.next();
      system.out.println("密码");
      string password1 = scan.next();
      //此处可以再次确认密码的逻辑
      system.out.println(adduser(new user(username1, password1)));
      system.out.println("返回上一层");
 
      break;
 
      case 3://管理员逻辑
      system.out.println("输入管理员账号");
      string username2 = scan.next();
      system.out.println("密码");
      string password2 = scan.next();
      user = new user(username2, password2);
      int i2 =bookc.loginguanli(user);
      if(i2==1){
        loginguanlisuccess();
      }else{
        system.out.println("登陆失败,检查密码或者账号");
      }
 
      break;
 
      default :
      system.out.println("输入序号不正确");
      break;
      }
 
    }while(flag);
 
 
    }catch(inputmismatchexception e){
    system.out.println("输入异常,请重启系统");
    }
 
 
  }
 
  //此处可以添加新的功能而不影响已有功能 (可以改为switch语句)
  private static void loginguanlisuccess() {
  while(true){
    system.out.println("添加图书:1\n更改图书信息:2\n返回:3");
    int i = scan.nextint();
    if(i==1){
    addbook();
    }else if(i==2){
    updatebookinfo();
    }else if(i==3){
    return;
    }
  }
 
  }
 
//更新图书
/**
 * 更新图书 只有管理员权限可以操作
 */
  private static void updatebookinfo() {
 
 
 
  //应该判断书名是否存在 contro层设计
  system.out.println("请输入书名");
  string bookname = scan.next();
  int a = bookc.querybook(bookname);
  if(a!=1){
    system.out.println("不存在,已返回上一层");
    return;
  }
 
/*   system.out.println("更新作者输入1,跳过11");
  int i =scan.nextint();
  list<list<string>> list = new arraylist<list<string>>();
  list<string> list1 = null;
  if(i==1){
    string newbookname = scan.next();
    list1 = new arraylist<string>();
    list1.add("zuozhe");
    list1.add("'"+newbookname+"'");
    list.add(list1);
  }
  //如果更新了库存,剩余数量也会跟着更新 需要判断库存逻辑的正确性
  system.out.println("更新数量输入2,跳过22");
  int ii = scan.nextint();
  if(ii==2){
    //判断数量逻辑的正确性
    resultset r =bookc.querybookk(bookname);
    try {
    int i1=0;int i2=0;
    while(r.next()){
      i1 = r.getint("shuliang");
      i2 = r.getint("shengyushuliang");
    }
    if(ii>i1){
      i2+=ii-i1;
    }
    if(ii<i1&&ii>=i2){
 
    }
    system.out.println("更新后的数量错误");
    return;
 
 
 
    } catch (sqlexception e) {
    // todo auto-generated catch block
    e.printstacktrace();
    }
 
 
 
 
    string newkucun= scan.next();
    list1 = new arraylist<string>();
    list1.add("shuliang");
    list1.add(newkucun);
    list.add(list1);
  }*/
 
  bookc.updatebookinfo(bookname);
  }
 
 
//添加图书 需要保证名字唯一性
  private static void addbook() {
  system.out.println("图名");
  string bookname = scan.next();
  system.out.println("作者");
  string zuozhe = scan.next();
  system.out.println("数量");
  int  shuliang = scan.nextint();
  bookinfo bookinfo = new bookinfo(bookname, zuozhe, shuliang, shuliang,new date());
  int i =bookc.addbookinfo(bookinfo);
  if(i==1){
    system.out.println("添加成功");
 
  }else{
    system.out.println("错误");
  }
 
  }
 
  //注册界面的实现
  private static string adduser(user user){
  switch (bookc.adduser(user)) {
  case 1:
    return "注册成功";
 
  case 2:
    return "用户已注册";
 
  case 3:
    return "其他错误,重试";
  }
 
  return "其他错误,重试";
 
  }
  //登陆功能实现
  private static void loginsuccess(user user ){
  while (true){
    system.out.println("查看借阅信息请输入:1,借书:2,还书:3,账号信息:4,退出:5"
      + "查询图书:6修改密码:7\n");
    int i = scan.nextint();
    switch (i) {
    case 1:
    borrowinfo(user);
    break;
    case 2:
    borrowbook(user);
    break;
    case 3:
    returnbook(user);
    break;
    case 4:
    queryuser(user);
    break;
    case 5:
    return ;
    case 6:
    system.out.println("请输入书名");
 
    querybook(scan.next());
    break;
    case 7: break;
    default:
    system.out.println("输入错误");
    break;
    }
  }
 
 
  }
  //查询借阅信息
  private static void borrowinfo(user user ){
  list<borrowinfo> l=bookc.queryborrowinfo(user);
  if(l==null||l.isempty()){
    system.out.println("没有借阅信息");
    return;
  }
  for (borrowinfo borrowinfo : l) {
    system.out.println(borrowinfo);
  }
 
  }
  //借书
  private static void borrowbook(user user){
  system.out.println("请输入借阅的书籍名称");
  string bookname =scan.next();
  string flog = bookc.borrowbook(bookname, user);
  system.out.println(flog);
  system.out.println("是否继续借书:y|n");
  string flog1 = scan.next();
  if(flog1.equalsignorecase("y")){
    borrowbook(user);
  }
  }
  //还书
  private static void returnbook(user user1 ){
  list<borrowinfo> l=bookc.queryborrowinfo(user1);
  if(l==null||l.isempty()){
    system.out.println("没有借阅信息");
    return;
  }
  for (borrowinfo borrowinfo : l) {
    system.out.println(borrowinfo);
  }
  system.out.println("请输入要还书籍的名字");
  string bookname = scan.next();
  int flog =bookc.returnbook(user1, bookname);
  if(flog==1){
    system.out.println("还书成功");
  }else{
    system.out.println("失败");
  }
  system.out.println("是否继续还书:y|n");
  string flog1 = scan.next();
  if(flog1.equalsignorecase("y")){
    returnbook(user1);
  }  
 
  }
  //用户信息
  private static void queryuser(user user){
  int i =bookc.queryuser(user);
  if( i!=1){
    system.out.println("失败");
  }
  }
 
  private static void querybook(string bookname){
  int i = bookc.querybook(bookname);
  if(i!=1)system.out.println("书籍不存在");
  }
 
  private static void guanliface(){
  while(true){
    system.out.println("查询书籍列表请输入 :1;添加图书:2;使用分页查看书籍列表");
    int i =scan.nextint();
    switch (i) {
    case 1:
    int i1= bookc.querybookinfo();
    if(i1==2)system.out.println("错误");
    break;
    case 2:
    system.out.println("书名");
    string booknname1 = scan.next();
    system.out.println("作者");
    string zuozhe1 = scan.next();
    system.out.println("数量");
    int shuliang1 = scan.nextint();
    date date = new date();
    int i3 = bookc.addbookinfo(new bookinfo(booknname1, zuozhe1, shuliang1, shuliang1, date));
    if(i3==2)system.out.println("错误");
    break;
    case 3:
    default:
    system.out.println("错");
    break;
    }
  }
 
  }
 
  private static void fenyeinfo(){
 
  }
 
 
}
数据库
/用户表
create table `userinfo` (
 `id` int(10) not null auto_increment,
 `username` varchar(20) collate utf8_bin default null,
 `password` varchar(20) collate utf8_bin default null,
 `books` int(10) default null,
 `isguanli` int(10) not null default '0',
 primary key (`id`)
) engine=innodb auto_increment=21 default charset=utf8 collate=utf8_bin;
 
 
/借书信息
create table `borrowinfo` (
 `id` int(10) not null auto_increment,
 `username` varchar(20) collate utf8_unicode_ci default null,
 `bookname` varchar(20) collate utf8_unicode_ci default null,
 `borrowdate` date default null,
 `returndate` date default null,
 primary key (`id`)
) engine=innodb auto_increment=9 default charset=utf8 collate=utf8_unicode_ci;
 
/书籍信息 字段用的拼音:-d
create table `bookinfo` (
 `id` int(10) not null auto_increment,
 `bookname` varchar(20) collate utf8_unicode_ci not null,
 `zuozhe` varchar(20) collate utf8_unicode_ci default null,
 `shuliang` varchar(20) collate utf8_unicode_ci default null,
 `shengyushuliang` varchar(20) collate utf8_unicode_ci default null,
 `date` date default null,
 primary key (`id`)
) engine=innodb auto_increment=13 default charset=utf8 collate=utf8_unicode_ci;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持CodeAE代码之家

关注下面的标签,发现更多相似文章