您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
本篇文章为大家展示了使用jdbc如何实现一个图书馆借阅系统,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
简介
图书馆管理系统分为用户登录和管理员登录,整个系统的控制是在控制台下进行操作的。
用户层
用户可以进行注册,登录,借书,查书,密码修改,还书等功能。
管理员层
管理员可以进行对管理书籍包括新书上架,修改库存信息等功能。
系统本身
系统本身可以根据用户是否逾期进行锁定禁止借书的功能等。
需要掌握的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;
上述内容就是使用jdbc如何实现一个图书馆借阅系统,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。