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());
Listl=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>();
Listlist1=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>();
Listlist1=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){
Listl=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){
Listl=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;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
