jdbc实现图书馆借阅系统
前言
每位在学校学java的同学在期末会有java课程设计,而选题很可能就是图书管理系统,此篇文章可以帮助到你。能力有限,代码有bug可以下方的评论区指明
简介
图书馆管理系统分为用户登录和管理员登录,整个系统的控制是在控制台下进行操作的。
用户层
用户可以进行注册,登录,借书,查书,密码修改,还书等功能。
管理员层
管理员可以进行对管理书籍包括新书上架,修改库存信息等功能。
系统本身
系统本身可以根据用户是否逾期进行锁定禁止借书的功能等。
需要掌握的java知识
java基础语法,容器(list),jdbc,sql语句。
po层代码
/** * *对数据库的操作进行单独处理,更多的逻辑更改在更高的逻辑层编写。降低耦合 * */ publicclassLibararyDao{ /** *注册图书 *@paramuser注册图书信息 *@return */ publicbooleanaddBook(Bookinfobookinfo){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="insertintobookinfo(bookname,zuozhe,shuliang,shengyushuliang,date)" +"values(?,?,?,?,?)"; PreparedStatementpre=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,newjava.sql.Date(bookinfo.getData().getTime())); pre.execute(); }catch(SQLExceptione){ System.out.println("图书注册失败"); e.printStackTrace(); returnfalse; } returntrue; } /** *注册账号 *@paramuser注册信息 *@return */ publicbooleanaddUser(Useruser){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="insertintouserinfo(username,password,books)values(?,?,0)"; PreparedStatementpre=con.prepareStatement(sql); pre.setString(1,user.getUsername()); pre.setString(2,user.getPassword()); pre.execute(); }catch(SQLExceptione){ System.out.println("注册失败"); e.printStackTrace(); returnfalse; } returntrue; } /** *查询用户 *@paramuser信息 *@return */ publicResultSetqueryUser(Useruser){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="select*fromuserinfowhereusername=?"; PreparedStatementpre; pre=con.prepareStatement(sql); pre.setString(1,user.getUsername()); ResultSetr=pre.executeQuery(); returnr; }catch(SQLExceptione){ System.out.println("查询失败"); e.printStackTrace(); returnnull; } } /** *更新持有书 *@paramuser信息 *@return */ publicbooleanupdateUserbooks(Useruser){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="updateuserinfosetbooks=?whereusername=?"; PreparedStatementpre; pre=con.prepareStatement(sql); pre.setInt(1,user.getBooks()); pre.setString(2,user.getUsername()); intr=pre.executeUpdate(); if(r>0){ returntrue; }else{ returnfalse; } }catch(SQLExceptione){ System.out.println("查询失败"); e.printStackTrace(); returnfalse; } } /** *借书表中插入 *@paramusername借书人 *@parambookname书名 *@return */ publicbooleanaddborrowinfo(Stringusername,Stringbookname){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="insertintoborrowinfo(username,bookname,borrowdate,returndate)" +"values(?,?,?,?)"; PreparedStatementpre; pre=con.prepareStatement(sql); pre.setString(1,username); pre.setString(2,bookname); pre.setDate(3,newjava.sql.Date(newDate().getTime())); pre.setDate(4,newjava.sql.Date(DateUtil.addMonth(newDate()).getTime())); pre.execute(); }catch(SQLExceptione){ System.out.println("借书失败"); e.printStackTrace(); returnfalse; } returntrue; } /** *查书 *@parambookname书名 *@return */ publicResultSetqueryBook(Stringbookname){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="select*frombookinfowherebookname='"+bookname+"'"; PreparedStatementpre; pre=con.prepareStatement(sql); ResultSetr=pre.executeQuery(); returnr; } catch(SQLExceptione){ System.out.println("借书失败"); e.printStackTrace(); returnnull; }} /** *查询所有的书籍 *@return */ publicResultSetqueryAllBook(){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="select*frombookinfo"; PreparedStatementpre; pre=con.prepareStatement(sql); ResultSetr=pre.executeQuery(); returnr; } catch(SQLExceptione){ System.out.println("借书失败"); e.printStackTrace(); returnnull; } } /** *分页 *@parampage *@return */ publicResultSetquerySubBookInfo(intpage){ try{ Connectioncon=JDBCutil.creatConnection(); PreparedStatementpre; Stringsql="select*frombookinfolimit?,5"; pre=con.prepareStatement(sql); pre.setInt(1,page); ResultSetr=pre.executeQuery(); returnr; } catch(SQLExceptione){ System.out.println("借书失败"); e.printStackTrace(); returnnull; } } /** *数据页数五条数据为一组 *@return */ publicintqueryPageInfo(){ try{ intzongshu=0; Connectioncon=JDBCutil.creatConnection(); Stringsql1="selectcount(id)ascoufrombookinfo"; Statementsta=con.createStatement(); ResultSetres=sta.executeQuery(sql1); if(res.next()) { zongshu=res.getInt("cou"); if(zongshu==0)return0; } inta=0; if(zongshu%5==0){ a=zongshu/5; }else{ a=zongshu/5+1; } returna; } catch(SQLExceptione){ System.out.println("借书失败"); e.printStackTrace(); return-1; } } /** *更新剩余数量 *@parambookname书名 *@paramsysl数量 *@return */ publicbooleanupdateBookinfo(Stringbookname,intsysl){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="updatebookinfosetshengyushuliang=?wherebookname=?"; PreparedStatementpre; pre=con.prepareStatement(sql); pre.setInt(1,sysl); pre.setString(2,bookname); intr=pre.executeUpdate(); if(r>0){ returntrue; }else{ returnfalse; } }catch(SQLExceptione){ System.out.println("借书失败"); e.printStackTrace(); returnfalse; } } /*publicbooleanqueryBook(String...strings){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="selectbooknamefrombookinfowhere1=1"; PreparedStatementpre; pre=con.prepareStatement(sql); ResultSetr=pre.executeQuery(); if(r.next()){ returntrue; }else{ returnfalse; } }catch(SQLExceptione){ System.out.println("借书失败"); e.printStackTrace(); returnfalse; }*/ /** *查询用户的所有的借阅信息 *@paramusername *@return */ publicResultSetqueryBorrowinfo(Stringusername){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="select*fromborrowinfowhereusername='"+username+"'"; PreparedStatementpre=con.prepareStatement(sql); ResultSetr=pre.executeQuery(); returnr; }catch(SQLExceptione){ System.out.println("查询失败"); e.printStackTrace(); returnnull; } } /** *查询借阅信息 *@paramusername *@return */ publicResultSetqueryBorrowinfo(Stringusername,Stringbookname){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="select*fromborrowinfowhereusername=?andbookname=?"; PreparedStatementpre=con.prepareStatement(sql); pre.setString(1,username); pre.setString(2,bookname); ResultSetr=pre.executeQuery(); returnr; }catch(SQLExceptione){ System.out.println("查询失败"); e.printStackTrace(); returnnull; } } /** *删除借书 *@paramusername人名 *@parambookname书名 *@return */ publicbooleandeleteBorrowInfo(Stringusername,Stringbookname){ try{ Connectioncon=JDBCutil.creatConnection(); Stringsql="deletefromborrowinfowhereusername=?andbookname=?"; PreparedStatementpre=con.prepareStatement(sql); pre.setString(1,username); pre.setString(2,bookname); pre.execute(); returntrue; }catch(SQLExceptione){ System.out.println("查询失败"); e.printStackTrace(); returnfalse; } } }
control层代码
/** *asdfasd发斯蒂芬 * */ packagelibrary.controller; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.util.ArrayList; importjava.util.List; importjava.util.Scanner; importlibrary.dao.LibararyDao; importlibrary.po.Bookinfo; importlibrary.po.BorrowInfo; importlibrary.po.User; publicclassBookController{ privatestaticLibararyDaobookdao; privateBorrowInfob; publicBookController(){ if(bookdao==null)bookdao=newLibararyDao(); } publicstaticvoidmain(String[]args){ //System.out.println(newBookController().addUser(newUser("123","dvdf"))); //System.out.println(newBookController().borrowBook("123",newUser("123","dvdf"))); //newBookController().fenyeInfo(2); } /** *用户登录 *@paramuser传过来的账号密码 *@return返回1为登陆成功2为不存在3异常 */ publicintloginUser(Useruser){ ResultSetrs=bookdao.queryUser(user);//验证用户是否存在 try{ if(rs!=null&&rs.next()){ booleanb=rs.getString("password").equals(user.getPassword()); if(b){ return1; } } return2; }catch(SQLExceptione){ e.printStackTrace(); return3; } } /** *管理员登陆 *@paramuser传过来的账号密码 *@return返回1为登陆成功2为不存在3异常 */ publicintloginGuanli(Useruser){ ResultSetrs=bookdao.queryUser(user);//验证管理员是否存在 try{ if(rs!=null&&rs.next()){ booleanb=rs.getString("password").equals(user.getPassword()); intb1=rs.getInt("isguanli");//管理员标志位1 if(b&&b1==1){ return1; } }return2; }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); return3; } } /** *查询书籍列表 *@return返回1为查询成功并已经输出2为失败或其他 */ publicintqueryBookinfo(){ try{ ResultSetr=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)return2; return1; }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); return2; } } /** *查询书籍数量和剩余数量 *@return返回1为查询成功并已经输出2为失败或其他 */ publicResultSetqueryBookK(Stringbookname){ ResultSetr=bookdao.queryBook(bookname); returnr; } /** *查询书籍 *@return返回1为查询成功并已经输出2为失败或其他 */ publicintqueryBook(Stringbookname){ try{ ResultSetr=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)return2; return1; }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); return2; } } /** *加入新的图书信息 *@parambookinfo书籍的详细信息 *@return1成功2失败 */ publicintaddBookinfo(Bookinfobookinfo){ booleanb=bookdao.addBook(bookinfo); if(b)return1; return2; } /** *注册用户 *@paramuser *@return */ publicintaddUser(Useruser){ ResultSetrs=bookdao.queryUser(user); try{ if(rs!=null&&!rs.next()){ booleanb=bookdao.addUser(user); if(b)return1; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); return3; } return2; } /** *查询用户所有信息 *@paramuser *@return */ publicintqueryUser(Useruser){ ResultSetr=bookdao.queryUser(user); try{ if(r.next()){ user.setBooks(r.getInt("books")); System.out.println(user); return1; } return2; }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); return2; } } /** *借书先检查书是否存在,再检查书籍是否有库存,然后检查是否已结借此书 *最后以上检查没有错误,就可以借书。用户持有数量增加,借书信息详解录入,库存更新 * *注意事项 *1resultset默认指向数据前一个位置必须用next *2需要加入事务防止出现错误造成数据表更新不一致 *@parambookname书名 *@return */ publicStringborrowBook(Stringbookname,Useruser){ try{ if(!bookdao.queryBook(bookname).next()){ return"借书失败-书籍不存在";} ResultSetquerybookrs=bookdao.queryBook(bookname); while(querybookrs.next()){ intt=querybookrs.getInt("shengyushuliang"); if(t<1){return"库存不足";} ResultSetrs=bookdao.queryBorrowinfo(user.getUsername()); if(rs!=null&&!rs.next()){ //加入借阅详细信息 booleanb1=bookdao.addborrowinfo(user.getUsername(),bookname); //更新借书数量 ResultSetrs1=bookdao.queryUser(user); rs1.next(); user.setBooks(rs1.getInt("books")+1); bookdao.updateUserbooks(user); //更新库存 booleanb2=bookdao.updateBookinfo(bookname,t-1); //System.out.println(b1+""+b2); returnb1?(b2?"借书成功":"借书失败"):("借书失败"); } } returnnull; }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); return"借书失败-其他错误"; } } /**还书 *更新用户持有数,归还书的库存,删除借书信息表中信息 *@paramuser更新数据数 *@parambookinfo更新库存后的数 *@return */ publicintreturnBook(Useruser,Stringbookname){ booleanb1=bookdao.deleteBorrowInfo(user.getUsername(),bookname); booleanb2=false; booleanb3=false; try{ //更新库存 ResultSetr=bookdao.queryBook(bookname); if(r.next()){ inti=r.getInt("shengyushuliang"); b2=bookdao.updateBookinfo(bookname,i+1); } //更新持有书数 r=bookdao.queryUser(user); if(r.next()){ inti=r.getInt("books"); user.setBooks(i-1); b3=bookdao.updateUserbooks(user); } if(!b1||!b2||!b3){ return2; } return1; }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); return2; } } /** *查询用户的借书情况 *@paramuser用户 *@return返回借阅信息 */ publicListqueryborrowinfo(Useruser){ ResultSetr=bookdao.queryBorrowinfo(user.getUsername()); List l=newArrayList (); try{ while(r!=null&&r.next()){ b=newBorrowInfo(); b.setUsername(r.getString("username")); b.setBookname(r.getString("bookname")); b.setBorrowdate(r.getDate("borrowdate")); b.setReturndate(r.getDate("returndate")); l.add(b); } returnl; }catch(SQLExceptione){ e.printStackTrace(); returnnull; } } /** *指定页码 *@paramage */ publicvoidfenyeInfo(intage){ inti=bookdao.queryPageInfo(); System.out.println("总页数:"+i); try{ if(i>0){ ResultSetr=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(SQLExceptione){ e.printStackTrace(); } } /** *指定上下页 *@paramage */ publicvoidfenyeInfo(Stringage){ } /** *更新图书信息 *更新作者,库存,剩余数量,不更新日期,书名(不就是添加了新的书籍了吗) *可更新任务可以多选 * *书名进行判断是否存在 *库存和剩余数量进行逻辑上的验证 */ publicvoidupdateBookinfo(Stringbookname){ Scannerscan=newScanner(System.in); System.out.println("更新作者输入:1,跳过11"); inti=scan.nextInt(); List >list=newArrayList
>(); List
list1=null; if(i==1){ Stringnewbookname=scan.next(); list1=newArrayList (); list1.add("zuozhe"); list1.add("'"+newbookname+"'"); list.add(list1); } //如果更新了库存,剩余数量也会跟着更新需要判断库存逻辑的正确性 System.out.println("更新数量输入2,跳过22"); intii=scan.nextInt(); if(ii==2){ System.out.println("请更新库存数量"); intnewsum=scan.nextInt(); //判断数量逻辑的正确性 ResultSetr=queryBookK(bookname); intoldsum=0;intsykc=0;//旧库存和剩余数量 try{ while(r.next()){ oldsum=r.getInt("shuliang"); sykc=r.getInt("shengyushuliang"); } if(newsum>oldsum){ sykc+=newsum-oldsum;//记录更新后的剩余数量 //System.out.println("根据已有库存,库存总量为---"+newsum); } elseif(newsum =sykc){//如何新的库存少于就库存。判断新库存与剩余数量的关系 sykc-=newsum; }else{ System.out.println("输入错误"); return; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } list1=newArrayList (); list1.add("shuliang"); list1.add(String.valueOf(newsum)); list.add(list1); list1=newArrayList (); list1.add("shengyushuliang"); list1.add(String.valueOf(sykc)); list.add(list1); } bookdao.updateBookinfo(list,bookname); } }
view层
packagelibrary.view; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.util.ArrayList; importjava.util.Date; importjava.util.InputMismatchException; importjava.util.List; importjava.util.Scanner; importlibrary.controller.BookController; importlibrary.po.Bookinfo; importlibrary.po.BorrowInfo; importlibrary.po.User; /** *视图类,也是界面的显示层。程序运行的入口 *想说的话: *如果使用web作为v层,只需要把bookrun方法拆开就可以了。对应会话跟踪,把privatestaticUseruser存入session对象就可以了 *框架的话用springmvc。对于dao加入orm框架(hibernate,mybatis)。整合起来也就是常见的ssm体系或ssh体系 *数据库的选择更是随你心情。mysqlSQLserver等等。 *项目bug仔细看的话很多。本意想给入门的同学一个思路方向。对于一些变量的命名请不要学我(偷懒),养成一个良好的 *习惯。祝你在编程的道路上越走越远!! */ publicclassView{ //controller业务控制类 privatestaticBookControllerbookc=newBookController(); //登陆后的用户跟踪类似session privatestaticUseruser; //控制主界面的循环 privatestaticbooleanflag=true; //接受控制台输入 privatestaticScannerscan=newScanner(System.in); publicstaticvoidmain(String[]args){ bookRun(); } //主界面应该考虑其他输入的限定(当输入字符时,系统停止运行) publicstaticvoidbookRun(){ try{ do{ System.out.println("欢迎来到图书借阅系统\n登陆输入:1\n注册输入:2\n管理员管理:3"); inti1=scan.nextInt(); switch(i1){ case1://登陆逻辑 System.out.println("输入账号"); Stringusername=scan.next(); System.out.println("密码"); Stringpassword=scan.next(); inti=bookc.loginUser(newUser(username,password)); if(i==1){ System.out.println("登陆成功"); user=newUser(username,password); loginSuccess(user); }elseif(i!=1){ System.out.println("登陆失败,检查密码或者账号"); } break; case2: //注册逻辑可以添加验证密码进行密码的确定javaapi有把明文进行处理的方法,请自行搜索 //还可以加入正则表达式进行账号的限定(对于特殊字符输入的处理等) System.out.println("输入申请账号"); Stringusername1=scan.next(); System.out.println("密码"); Stringpassword1=scan.next(); //此处可以再次确认密码的逻辑 System.out.println(addUser(newUser(username1,password1))); System.out.println("返回上一层"); break; case3://管理员逻辑 System.out.println("输入管理员账号"); Stringusername2=scan.next(); System.out.println("密码"); Stringpassword2=scan.next(); user=newUser(username2,password2); inti2=bookc.loginGuanli(user); if(i2==1){ loginGuanliSuccess(); }else{ System.out.println("登陆失败,检查密码或者账号"); } break; default: System.out.println("输入序号不正确"); break; } }while(flag); }catch(InputMismatchExceptione){ System.out.println("输入异常,请重启系统"); } } //此处可以添加新的功能而不影响已有功能(可以改为switch语句) privatestaticvoidloginGuanliSuccess(){ while(true){ System.out.println("添加图书:1\n更改图书信息:2\n返回:3"); inti=scan.nextInt(); if(i==1){ addBook(); }elseif(i==2){ updateBookinfo(); }elseif(i==3){ return; } } } //更新图书 /** *更新图书只有管理员权限可以操作 */ privatestaticvoidupdateBookinfo(){ //应该判断书名是否存在contro层设计 System.out.println("请输入书名"); Stringbookname=scan.next(); inta=bookc.queryBook(bookname); if(a!=1){ System.out.println("不存在,已返回上一层"); return; } /*System.out.println("更新作者输入1,跳过11"); inti=scan.nextInt(); List>list=newArrayList
>(); List
list1=null; if(i==1){ Stringnewbookname=scan.next(); list1=newArrayList (); list1.add("zuozhe"); list1.add("'"+newbookname+"'"); list.add(list1); } //如果更新了库存,剩余数量也会跟着更新需要判断库存逻辑的正确性 System.out.println("更新数量输入2,跳过22"); intii=scan.nextInt(); if(ii==2){ //判断数量逻辑的正确性 ResultSetr=bookc.queryBookK(bookname); try{ inti1=0;inti2=0; while(r.next()){ i1=r.getInt("shuliang"); i2=r.getInt("shengyushuliang"); } if(ii>i1){ i2+=ii-i1; } if(ii =i2){ } System.out.println("更新后的数量错误"); return; }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringnewkucun=scan.next(); list1=newArrayList (); list1.add("shuliang"); list1.add(newkucun); list.add(list1); }*/ bookc.updateBookinfo(bookname); } //添加图书需要保证名字唯一性 privatestaticvoidaddBook(){ System.out.println("图名"); Stringbookname=scan.next(); System.out.println("作者"); Stringzuozhe=scan.next(); System.out.println("数量"); intshuliang=scan.nextInt(); Bookinfobookinfo=newBookinfo(bookname,zuozhe,shuliang,shuliang,newDate()); inti=bookc.addBookinfo(bookinfo); if(i==1){ System.out.println("添加成功"); }else{ System.out.println("错误"); } } //注册界面的实现 privatestaticStringaddUser(Useruser){ switch(bookc.addUser(user)){ case1: return"注册成功"; case2: return"用户已注册"; case3: return"其他错误,重试"; } return"其他错误,重试"; } //登陆功能实现 privatestaticvoidloginSuccess(Useruser){ while(true){ System.out.println("查看借阅信息请输入:1,借书:2,还书:3,账号信息:4,退出:5" +"查询图书:6修改密码:7\n"); inti=scan.nextInt(); switch(i){ case1: borrowInfo(user); break; case2: borrowBook(user); break; case3: returnBook(user); break; case4: queryUser(user); break; case5: return; case6: System.out.println("请输入书名"); queryBook(scan.next()); break; case7:break; default: System.out.println("输入错误"); break; } } } //查询借阅信息 privatestaticvoidborrowInfo(Useruser){ List l=bookc.queryborrowinfo(user); if(l==null||l.isEmpty()){ System.out.println("没有借阅信息"); return; } for(BorrowInfoborrowInfo:l){ System.out.println(borrowInfo); } } //借书 privatestaticvoidborrowBook(Useruser){ System.out.println("请输入借阅的书籍名称"); Stringbookname=scan.next(); Stringflog=bookc.borrowBook(bookname,user); System.out.println(flog); System.out.println("是否继续借书:y|n"); Stringflog1=scan.next(); if(flog1.equalsIgnoreCase("y")){ borrowBook(user); } } //还书 privatestaticvoidreturnBook(Useruser1){ List l=bookc.queryborrowinfo(user1); if(l==null||l.isEmpty()){ System.out.println("没有借阅信息"); return; } for(BorrowInfoborrowInfo:l){ System.out.println(borrowInfo); } System.out.println("请输入要还书籍的名字"); Stringbookname=scan.next(); intflog=bookc.returnBook(user1,bookname); if(flog==1){ System.out.println("还书成功"); }else{ System.out.println("失败"); } System.out.println("是否继续还书:y|n"); Stringflog1=scan.next(); if(flog1.equalsIgnoreCase("y")){ returnBook(user1); } } //用户信息 privatestaticvoidqueryUser(Useruser){ inti=bookc.queryUser(user); if(i!=1){ System.out.println("失败"); } } privatestaticvoidqueryBook(Stringbookname){ inti=bookc.queryBook(bookname); if(i!=1)System.out.println("书籍不存在"); } privatestaticvoidGuanliFace(){ while(true){ System.out.println("查询书籍列表请输入:1;添加图书:2;使用分页查看书籍列表"); inti=scan.nextInt(); switch(i){ case1: inti1=bookc.queryBookinfo(); if(i1==2)System.out.println("错误"); break; case2: System.out.println("书名"); Stringbooknname1=scan.next(); System.out.println("作者"); Stringzuozhe1=scan.next(); System.out.println("数量"); intshuliang1=scan.nextInt(); Datedate=newDate(); inti3=bookc.addBookinfo(newBookinfo(booknname1,zuozhe1,shuliang1,shuliang1,date)); if(i3==2)System.out.println("错误"); break; case3: default: System.out.println("错"); break; } } } privatestaticvoidfenyeInfo(){ } }
数据库
/用户表 CREATETABLE`userinfo`( `id`int(10)NOTNULLAUTO_INCREMENT, `username`varchar(20)COLLATEutf8_binDEFAULTNULL, `password`varchar(20)COLLATEutf8_binDEFAULTNULL, `books`int(10)DEFAULTNULL, `isguanli`int(10)NOTNULLDEFAULT'0', PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=21DEFAULTCHARSET=utf8COLLATE=utf8_bin; /借书信息 CREATETABLE`borrowinfo`( `id`int(10)NOTNULLAUTO_INCREMENT, `username`varchar(20)COLLATEutf8_unicode_ciDEFAULTNULL, `bookname`varchar(20)COLLATEutf8_unicode_ciDEFAULTNULL, `borrowdate`dateDEFAULTNULL, `returndate`dateDEFAULTNULL, PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=9DEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci; /书籍信息字段用的拼音:-D CREATETABLE`bookinfo`( `id`int(10)NOTNULLAUTO_INCREMENT, `bookname`varchar(20)COLLATEutf8_unicode_ciNOTNULL, `zuozhe`varchar(20)COLLATEutf8_unicode_ciDEFAULTNULL, `shuliang`varchar(20)COLLATEutf8_unicode_ciDEFAULTNULL, `shengyushuliang`varchar(20)COLLATEutf8_unicode_ciDEFAULTNULL, `date`dateDEFAULTNULL, PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=13DEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。