前言
每位在学校学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;