JSP图书管理系统
allbook.jsp
pageEncoding="UTF-8"%>
<%@ page import = "java.util.*" %>
<%@page import="com.book.service.*" %>
<%@page import="com.book.entity.*" %>
<%@page import="com.book.dao.*" %>
<jsp:useBean id="bse" class="com.book.service.BookService" scope="page"></jsp:useBean>
<jsp:useBean id="bm" class="com.book.entity.BookManage" scope="page"></jsp:useBean>
<jsp:useBean id="dao" class="com.book.dao.BookManageDao" scope="page"></jsp:useBean>
<%
List<BookManage> list = dao.checkAll();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="menu.css"/>
</head>
<body>
<main>
<section class="glass">
<div>
<p class="tip">全部书籍</p>
</div>
<div class="dateshow">
<table>
<tr>
<th>编号</th>
<th>书名</th>
<th>作者</th>
<th>出版日期</th>
<th>类型</th>
<th>库存</th>
</tr>
<%for(BookManage book : list){
%>
<tr>
<td><%=book.getB_id() %></td>
<td><%=book.getB_name() %></td>
<td><%=book.getB_author() %></td>
<td><%=book.getB_date() %></td>
<td><%=book.getB_type() %></td>
<td><%=book.getB_stock() %></td>
</tr>
<%
}
%>
</table>
</div>
<div class="foot1">
<a href="menu.jsp">返回首页</a>
</div>
</section>
</main>
</body>
<script type="text/javascript">
</script>
</html>
borrow.jsp
pageEncoding="UTF-8"%>
<%@ page import = "java.util.*" %>
<%@page import="com.book.service.*" %>
<%@page import="com.book.entity.*" %>
<%@page import="com.book.dao.*" %>
<jsp:useBean id="bse" class="com.book.service.BookService" scope="page"></jsp:useBean>
<jsp:useBean id="bm" class="com.book.entity.BookManage" scope="page"></jsp:useBean>
<jsp:useBean id="dao" class="com.book.dao.BookManageDao" scope="page"></jsp:useBean>
<%
List<BookManage> list = dao.checkAll();
int id = 0;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="menu.css"/>
</head>
<body>
<main>
<section class="glass">
<div>
<p class="tip">请输入借出书籍的编号、书名,谢谢!</p>
</div>
<form action="onborrow.jsp" method="post">
<p>书籍编号:</p>
<input type="text" id="bnumber" name="bnumber"/>
<p>书籍名:</p>
<input type="text" id="bname" name="bname"/>
<input type="submit" id="submit" name="submit" value="借书"/>
</form>
<%
String jud = (String)session.getAttribute("jud");
if(jud == "true"){
%>
<script>
alert("借书成功!");
</script>
<%
session.setAttribute("jud", "");
}else if(jud == "false"){
%>
<script>
alert("借书失败!");
</script>
<%
session.setAttribute("jud", "");
}
%>
<div class="foot">
<a href="menu.jsp">返回首页</a>
</div>
</section>
</main>
</body>
<script type="text/javascript">
function judge(){
var nu = document.getElementById("bnumber");
var na = document.getElementById("bname");
if(parseInt(nu.value) !== null && na.value !== null){
return true;
}else{
return false;
}
}
</script>
</html>
check.jsp
pageEncoding="UTF-8"%>
<%@ page import = "java.util.*" %>
<%@page import="com.book.service.*" %>
<%@page import="com.book.entity.*" %>
<%@page import="com.book.dao.*" %>
<jsp:useBean id="bse" class="com.book.service.BookService" scope="page"></jsp:useBean>
<jsp:useBean id="bm" class="com.book.entity.BookManage" scope="page"></jsp:useBean>
<jsp:useBean id="dao" class="com.book.dao.BookManageDao" scope="page"></jsp:useBean>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="menu.css"/>
</head>
<body>
<main>
<section class="glass">
<div>
<p class="tip">请输入要查询的书籍的编号、书名,谢谢!</p>
</div>
<form action="oncheck.jsp" method="post">
<p>书籍编号:</p>
<input type="text" id="bnumber" name="bnumber"/>
<p>书籍名:</p>
<input type="text" id="bname" name="bname"/>
<input type="submit" id="submit" name="submit" value="查询"/>
</form>
<div class="foot">
<a href="menu.jsp">返回首页</a>
</div>
</section>
</main>
</body>
<script type="text/javascript">
function judge(){
var nu = document.getElementById("bnumber");
var na = document.getElementById("bname");
if(parseInt(nu.value) !== null && na.value !== null){
return true;
}else{
return false;
}
}
</script>
</html>
menu.css
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
main{
min-height:100vh;
background:linear-gradient(to right top,#65dfc9,#6cdbeb);
display:flex;
align-items: center;
justify-content: center;
}
.glass{
background: white;
min-height: 80vh;
width:60%;
background: linear-gradient(to right bottom,rgba(255,255,255,0.7),rgba(255,255,255,0.3));
border-radius: 2rem;
z-index: 2;
backdrop-filter: blur(2rem);
}
.circle1,.circle2{
background:white;
background: linear-gradient(to right bottom,rgba(255,255,255,0.8),rgba(255,255,255,0.3));
height: 20rem;
width: 20rem;
position:absolute;
border-radius: 50%;
}
.circle1{
top: 5%;
right: 15%;
}
.circle2{
top: 60%;
left: 10%;
}
.title{
position: relative;
top: 50px;
}
.element{
height: 120px;
width: 120px;
float: left;
align-items: center;
margin: 20px;
}
.link{
background:rgb(109, 211, 236);
background: linear-gradient(to right bottom,rgba(255,255,255,0.8),rgba(255,255,255,0.3));
height: 120px;
width: 120px;
border-radius: 50%;
box-shadow: 5px 5px 5px rgba(0,0,0,0.2);
display: flex;
justify-content: center;
align-items: center;
}
.links{
height: 60%;
width: 100%;
position: relative;
top: 130px;
display: flex;
justify-content: center;
align-items: center;
}
img{
width: 80px;
height: 80px;
}
a{
font-family:Georgia, 'Times New Roman', Times, serif;
position: relative;
display: flex;
justify-content: center;
align-items: center;
color: #26cce6;
text-decoration: none;
margin-top: 25px;
font-weight: 500;
border-radius: 20px;
background-color: rgba(255,255,255,0.2);
padding: 8px 20px;
box-shadow: 0px 0px 10px rgba(0,0,0,0.2);
}
h1{
text-align: center;
font-size: 60px;
color: #26cce6;
}
.tip{
position: relative;
top: 20px;
font-size: 20px;
color: #26cce6;
text-decoration: none;
margin-top: 25px;
font-weight: 500;
border-radius: 20px;
background-color: rgba(255,255,255,0.2);
padding: 8px 20px;
}
table{
width: 100%;
position: relative;
top: 50px;
text-align:center;
vertical-align:middle;
border-top: 1px solid #999;
border-left: 1px solid #999;
border-spacing: 0;/*去掉单元格间隙*/
}
table th{
border-bottom: 1px solid #999;
border-right: 1px solid #999;
}
table td{
border-bottom: 1px solid #999;
border-right: 1px solid #999;
}
.checkshow{
width: 100%;
position: relative;
top: 30px;
display: flex;
justify-content: center;
align-items: center;
}
.tab1{
width: 100%;
position: relative;
top: 20px;
text-align:center;
vertical-align:middle;
border-top: 1px solid #999;
border-left: 1px solid #999;
border-spacing: 0;/*去掉单元格间隙*/
}
.tab1>th{
border-bottom: 1px solid #999;
border-right: 1px solid #999;
}
.tad1>td{
border-bottom: 1px solid #999;
border-right: 1px solid #999;
}
form{
position: relative;
top: 130px;
display: flex;
justify-content: center;
align-items: center;
}
.foot{
width: 100%;
position: relative;
top: 430px;
right: 20px;
display: flex;
justify-content: flex-end;
align-items: flex-end;
}
.foot1{
width: 100%;
position: relative;
top: 330px;
right: 20px;
display: flex;
justify-content: flex-end;
align-items: flex-end;
}
menu.jsp
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图书管理系统</title>
<link rel="stylesheet" type="text/css" href="menu.css"/>
</head>
<body>
<main>
<section class="glass">
<div class="title">
<h1>图书管理系统</h1>
</div>
<div class="links">
<div class="element">
<div class="link">
<img src="./images/borrow1.png" alt=""/>
</div>
<a href="borrow.jsp">借阅</a>
</div>
<div class="element">
<div class="link">
<img src="./images/return1.png" alt=""/>
</div>
<a href="return.jsp">还书</a>
</div>
<div class="element">
<div class="link">
<img src="./images/check1.png" alt=""/>
</div>
<a href="check.jsp">查询</a>
</div>
<div class="element">
<div class="link">
<img src="./images/book1.png" alt=""/>
</div>
<a href="allbook.jsp">书库</a>
</div>
</div>
</section>
</main>
<div class="circle1"></div>
<div class="circle2"></div>
</body>
</html>```
##onborrow.jsp
```<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "java.util.*" %>
<%@page import="com.book.service.*" %>
<%@page import="com.book.entity.*" %>
<%@page import="com.book.dao.*" %>
<jsp:useBean id="bse" class="com.book.service.BookService" scope="page"></jsp:useBean>
<jsp:useBean id="bm" class="com.book.entity.BookManage" scope="page"></jsp:useBean>
<jsp:useBean id="dao" class="com.book.dao.BookManageDao" scope="page"></jsp:useBean>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("bnumber");
String name = request.getParameter("bname");
String i = "false";
int ids = Integer.valueOf(id);
if(dao.update(ids, name) != 0){
i = "true";
session.setAttribute("jud", i);
response.sendRedirect("borrow.jsp");
}else{
i = "false";
session.setAttribute("jud", i);
response.sendRedirect("borrow.jsp");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>```
##oncheck.jsp
```<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "java.util.*" %>
<%@page import="com.book.service.*" %>
<%@page import="com.book.entity.*" %>
<%@page import="com.book.dao.*" %>
<jsp:useBean id="bse" class="com.book.service.BookService" scope="page"></jsp:useBean>
<jsp:useBean id="bm" class="com.book.entity.BookManage" scope="page"></jsp:useBean>
<jsp:useBean id="dao" class="com.book.dao.BookManageDao" scope="page"></jsp:useBean>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("bnumber");
String name = request.getParameter("bname");
String i = "false";
int ids = Integer.valueOf(id);
List<BookManage> list = dao.check(ids,name);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="menu.css"/>
</head>
<body>
<main>
<section class="glass">
<div>
<p class="tip">查找到的信息</p>
</div>
<div class="checkshow">
<table class="tab1">
<tr>
<th>编号</th>
<th>书名</th>
<th>作者</th>
<th>出版日期</th>
<th>类型</th>
<th>库存</th>
</tr>
<%for(BookManage book : list){
%>
<tr>
<td><%=book.getB_id() %></td>
<td><%=book.getB_name() %></td>
<td><%=book.getB_author() %></td>
<td><%=book.getB_date() %></td>
<td><%=book.getB_type() %></td>
<td><%=book.getB_stock() %></td>
</tr>
<%
}
%>
</table>
</div>
<div class="foot">
<a href="menu.jsp">返回首页</a>
</div>
</section>
</main>
</body>
<script type="text/javascript">
</script>
</html>
onreturn.jsp
pageEncoding="UTF-8"%>
<%@ page import = "java.util.*" %>
<%@page import="com.book.service.*" %>
<%@page import="com.book.entity.*" %>
<%@page import="com.book.dao.*" %>
<jsp:useBean id="bse" class="com.book.service.BookService" scope="page"></jsp:useBean>
<jsp:useBean id="bm" class="com.book.entity.BookManage" scope="page"></jsp:useBean>
<jsp:useBean id="dao" class="com.book.dao.BookManageDao" scope="page"></jsp:useBean>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("bnumber");
String name = request.getParameter("bname");
String i = "false";
int ids = Integer.valueOf(id);
if(dao.add(ids, name) != 0){
i = "true";
session.setAttribute("jud", i);
response.sendRedirect("return.jsp");
}else{
i = "false";
session.setAttribute("jud", i);
response.sendRedirect("return.jsp");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
return.jsp
pageEncoding="UTF-8"%>
<%@ page import = "java.util.*" %>
<%@page import="com.book.service.*" %>
<%@page import="com.book.entity.*" %>
<%@page import="com.book.dao.*" %>
<jsp:useBean id="bse" class="com.book.service.BookService" scope="page"></jsp:useBean>
<jsp:useBean id="bm" class="com.book.entity.BookManage" scope="page"></jsp:useBean>
<jsp:useBean id="dao" class="com.book.dao.BookManageDao" scope="page"></jsp:useBean>
<%
int id = 0;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="menu.css"/>
</head>
<body>
<main>
<section class="glass">
<div>
<p class="tip">请输入归还书籍的编号、书名,谢谢!</p>
</div>
<form action="onreturn.jsp" method="post">
<p>书籍编号:</p>
<input type="text" id="bnumber" name="bnumber"/>
<p>书籍名:</p>
<input type="text" id="bname" name="bname"/>
<input type="submit" id="submit" name="submit" value="还书"/>
</form>
<%
String jud = (String)session.getAttribute("jud");
if(jud == "true"){
%>
<script>
alert("还书成功!");
</script>
<%
session.setAttribute("jud", "");
}else if(jud == "false"){
%>
<script>
alert("还书失败!");
</script>
<%
session.setAttribute("jud", "");
}
%>
<div class="foot">
<a href="menu.jsp">返回首页</a>
</div>
</section>
</main>
</body>
<script type="text/javascript">
function judge(){
var nu = document.getElementById("bnumber");
var na = document.getElementById("bname");
if(parseInt(nu.value) !== null && na.value !== null){
return true;
}else{
return false;
}
}
</script>
</html>
BookManageDao.java
import java.awt.print.Book;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.book.entity.BookManage;
public class BookManageDao extends BaseDao{
//check *
public List<BookManage> checkAll() {
List<BookManage> list = new ArrayList<BookManage>();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getConnection();
//SQL code
String sql = "select * from bookinfo";
ps = conn.prepareStatement(sql);
//run
rs = ps.executeQuery();//rs is a from
while(rs.next()) {
//everyone is a object
BookManage b = new BookManage();
b.setB_id(rs.getInt(1));
b.setB_name(rs.getString(2));
b.setB_author(rs.getString(3));
b.setB_date(rs.getString(4));
b.setB_type(rs.getInt(5));
b.setB_stock(rs.getInt(6));
list.add(b);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
closeAll(conn, ps, null);
}
return list;
}
//check query
public List<BookManage> check(int bid, String bname) {
List<BookManage> list = new ArrayList<BookManage>();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getConnection();
//SQL code
String sql = "select * from bookinfo where b_id=? and b_name=?";
ps = conn.prepareStatement(sql);
ps.setInt(1, bid);
ps.setString(2, bname);
//run
rs = ps.executeQuery();//rs is a from
while(rs.next()) {
//everyone is a object
BookManage b = new BookManage();
b.setB_id(rs.getInt(1));
b.setB_name(rs.getString(2));
b.setB_author(rs.getString(3));
b.setB_date(rs.getString(4));
b.setB_type(rs.getInt(5));
b.setB_stock(rs.getInt(6));
list.add(b);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
closeAll(conn, ps, null);
}
return list;
}
//add
public int add(int bid, String bname) {
int i = 0;
Connection conn = null;
PreparedStatement ps = null;
try {
//link
conn = getConnection();
//SQL code
String sql = "update bookinfo set b_stock=b_stock+1 where b_id=? and b_name=?";
//given ?
ps = conn.prepareStatement(sql);
ps.setInt(1, bid);
ps.setString(2, bname);
//run
i = ps.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
closeAll(conn, ps, null);
}
return i;
}
//update
public int update(int bid, String bname) {
int i = 0;
Connection conn = null;
PreparedStatement ps = null;
try {
//link
conn = getConnection();
//SQL code
String sql = "update bookinfo set b_stock=b_stock-1 where b_id=? and b_name=?";
//given ?
ps = conn.prepareStatement(sql);
ps.setInt(1, bid);
ps.setString(2, bname);
//run
i = ps.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
closeAll(conn, ps, null);
}
return i;
}
}
BookManage.java
public class BookManage {
// b_id bigint not null auto_increment,
// b_name varchar(50) not null,
// b_author varchar(50) not null,
// b_date datetime not null,
// b_type int not null
// b_stock int(50) not null
private int b_id;
private String b_name;
private String b_author;
private String b_date;
private int b_type;
private int b_stock;
//空构造
public BookManage() {
super();
}
// 构造
public BookManage(int b_id, String b_name, String b_author, String b_date, int b_type, int b_stock) {
super();
this.b_id = b_id;
this.b_name = b_name;
this.b_author = b_author;
this.b_date = b_date;
this.b_type = b_type;
this.b_stock = b_stock;
}
public int getB_id() {
return b_id;
}
public void setB_id(int b_id) {
this.b_id = b_id;
}
public String getB_name() {
return b_name;
}
public void setB_name(String b_name) {
this.b_name = b_name;
}
public String getB_author() {
return b_author;
}
public void setB_author(String b_author) {
this.b_author = b_author;
}
public String getB_date() {
return b_date;
}
public void setB_date(String b_date) {
this.b_date = b_date;
}
public int getB_type() {
return b_type;
}
public void setB_type(int b_type) {
this.b_type = b_type;
}
public int getB_stock() {
return b_stock;
}
public void setB_stock(int b_stock) {
this.b_stock = b_stock;
}
}
BaseDao.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class BaseDao {
//open connection
protected Connection getConnection(){
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/book","root","root");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return conn;
}
//close connection
protected void closeAll(Connection con,PreparedStatement ps,ResultSet rs) {
try {
if(rs != null) {
rs.close();
}
if(ps != null) {
ps.close();
}
if(con != null) {
con.close();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}