博客目录

  • JSP图书借阅系统
    • 主要功能点
    • 实现功能截图
    • 技术点总结
    • 代码
    • 写在最后

JSP图书借阅系统

随着社会经济的迅速发展和科学技术的全面进步以及计算机事业的飞速发展,以计算机科学与通信技术为基础的信息管理系统IE处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高,但伴随着人的劳动强度的增大,以及社交活动的广泛开展,如何来提高人民纸质书本阅读量,是一个很现实的问题。无疑,科技的蓬勃发展使更多人依赖电子书,逐渐失去了对阅读纸质书本重要性的理解。如今书籍的发展,也继承了信息化的发展道路,网络的兴起,给了人们各种各样不同的选择。与此同时,为了管理好一个书店的正常营运,管理问题也就提上了日程。随着图书借阅问题的白热化,管理难度也越来越大,如何优化书店的日常管理也就成为了一个大众化的课题。

主要功能点

读者:
登录注册,借阅还书,查询书籍,查看当前借阅信息以及历史借阅信息,查看、查询读者借阅榜以及借阅书籍借阅榜,问题反馈以及查询反馈结果等功能。
管理员:
对图书、图书分类、读者信息的增删改查,查看全部读者当前借阅信息以及借阅历史,查看、查询书籍借阅榜及读者借阅榜,查看、查询用户反馈信息并修改反馈状态(未解决或已解决)。
超级管理员:
除管理员权限外,新增管理员权限。对管理员信息进行增删改功能。为书店员工定制个人账号,方便管理。

实现功能截图

注册登录:

读者主页面:

修改个人资料:

图书管理员主页面:

超级管理:

图书查询:

借阅图书:

借阅信息:

还书:

借阅历史:

热门推荐:

最佳读者:

问题反馈:

添加修改删除图书:



读者管理:

技术点总结

jsp、Servlet
jdk版本:1.7
tomcat: 7.0
数据库:mysql
开发工具:eclipse

项目包结构分类清晰:

(叉号有些是误报。。)

代码

实体类Entity:
BookBean.java:

package com.code2life.bean;public class BookBean {/*** 图书的数据表的bean*/private int bid;// idprivate String name;// 图书名称private String card;// 图书号private String autho;// 作者private int num;// 图书数量private String type;// 图书的分类private String press;// 出版社private int times;//借阅次数public int getBid() {return bid;}public void setBid(int bid) {this.bid = bid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getCard() {return card;}public void setCard(String card) {this.card = card;}public String getAutho() {return autho;}public void setAutho(String autho) {this.autho = autho;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getPress() {return press;}public void setPress(String press) {this.press = press;}public int getTimes() {return times;}public void setTimes(int times) {this.times = times;}
}

TUserBean.java

package com.code2life.bean;public class TUserBean {/*** 用户的数据表的bean*/private int id;// idprivate int status;// 用来判断是管理员还是读者,读者的值为1,管理员为2private String username;// 账号private String phone;// 手机号private String password;// 密码public int getId() {return id;}public void setId(int aid) {this.id = id;}public int getStatus() {return status;}public void setStatus(int status) {this.status = status;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}}

数据库连接:
DBUtil.java:

package com.code2life.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class DBUtil {/*** 连接数据库的操作,用户名,密码,使用jdbc连接*/public static String username = "root";public static String password = "123456";public static String url = "jdbc:mysql://localhost:3306/books?useSSL=false&serverTimezone=UTC";static {try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection getConnectDb() {Connection conn = null;try {conn = DriverManager.getConnection(url, username, password);} catch (SQLException e) {e.printStackTrace();}return conn;}public static void CloseDB(ResultSet rs, PreparedStatement stm, Connection conn) {if (rs != null) {try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (stm != null) {try {stm.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}

dao层
BookDao.java

package com.code2life.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;import com.code2life.bean.AdminBean;
import com.code2life.bean.BookBean;
import com.code2life.bean.HistoryBean;
import com.code2life.util.DBUtil;/*** 关于图书连接数据库的所有操作的类*/
public class BookDao {/*** 添加图书信息,传入所有的信息* * @param card* @param name* @param type* @param autho* @param press* @param num* @param times*/public void addBook(String card, String name, String type, String autho, String press, int num) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "insert into book(card,name,type,autho,press,num,times) values(?,?,?,?,?,?,?)";int rs = 0;PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, card);stm.setString(2, name);stm.setString(3, type);stm.setString(4, autho);stm.setString(5, press);stm.setInt(6, num);stm.setInt(7, 0);rs = stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 获取所有的图书信息,返回的是ArrayList数组形式* * @return*/public ArrayList<BookBean> get_ListInfo() {ArrayList<BookBean> tag_Array = new ArrayList<BookBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from book";PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {BookBean tag = new BookBean();tag.setBid(rs.getInt("bid"));tag.setName(rs.getString("name"));tag.setCard(rs.getString("card"));tag.setType(rs.getString("type"));tag.setAutho(rs.getString("autho"));tag.setPress(rs.getString("press"));tag.setNum(rs.getInt("num"));tag.setTimes(rs.getInt("times"));tag_Array.add(tag);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}/*** 获取所有的图书信息并排序,返回的是ArrayList数组形式* * @return*/public ArrayList<BookBean> get_ListInfo2() {ArrayList<BookBean> tag_Array = new ArrayList<BookBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from book order by times desc";PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {BookBean tag = new BookBean();tag.setBid(rs.getInt("bid"));tag.setName(rs.getString("name"));tag.setCard(rs.getString("card"));tag.setType(rs.getString("type"));tag.setAutho(rs.getString("autho"));tag.setPress(rs.getString("press"));tag.setNum(rs.getInt("num"));tag.setTimes(rs.getInt("times"));tag_Array.add(tag);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}/*** 获取借阅记录的全部信息,传入的条件有status,aid,表示搜索正在借阅的,或者已经还书的信息,aid代表当前登录用户* * @param status* @return*/public ArrayList<HistoryBean> get_HistoryListInfo(int status, String aid) {ArrayList<HistoryBean> tag_Array = new ArrayList<HistoryBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from history where aid=" + aid + " and status=" + status;PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {HistoryBean tag = new HistoryBean();tag.setHid(rs.getInt("hid"));tag.setAid(rs.getInt("aid"));tag.setBid(rs.getInt("bid"));tag.setBookname(rs.getString("bookname"));tag.setCard(rs.getString("card"));tag.setAdminname(rs.getString("adminname"));tag.setUsername(rs.getString("username"));tag.setBegintime(rs.getString("begintime"));tag.setEndtime(rs.getString("endtime"));tag.setStatus(rs.getInt("status"));tag_Array.add(tag);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}/*** 获取借阅记录的全部信息,传入的条件有status,表示搜索正在借阅的,或者已经还书的信息* * @param status* @return*/public ArrayList<HistoryBean> get_HistoryListInfo2(int status) {ArrayList<HistoryBean> tag_Array = new ArrayList<HistoryBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from history where status=" + status;PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {HistoryBean tag = new HistoryBean();tag.setHid(rs.getInt("hid"));tag.setAid(rs.getInt("aid"));tag.setBid(rs.getInt("bid"));tag.setBookname(rs.getString("bookname"));tag.setCard(rs.getString("card"));tag.setAdminname(rs.getString("adminname"));tag.setUsername(rs.getString("username"));tag.setBegintime(rs.getString("begintime"));tag.setEndtime(rs.getString("endtime"));tag.setStatus(rs.getInt("status"));tag_Array.add(tag);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}/*** 获取单个图书的信息,根据传入的bid来查找,返回一个BookBean数据类型* * @param bid* @return*/public BookBean get_BookInfo(int bid) {BookBean tag = new BookBean();Connection conn = DBUtil.getConnectDb();String sql = "select * from book where bid=" + bid;PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {tag.setBid(rs.getInt("bid"));tag.setName(rs.getString("name"));tag.setCard(rs.getString("card"));tag.setType(rs.getString("type"));tag.setAutho(rs.getString("autho"));tag.setPress(rs.getString("press"));tag.setTimes(rs.getInt("times"));tag.setNum(rs.getInt("num"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag;}/*** 修改图书的信息,bid作为条件*/public void updateBook(int bid, String card, String name, String type, String autho, String press, int num) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "update book set name=?,card=?,type=?,autho=?,press=?,num=? where bid=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, name);stm.setString(2, card);stm.setString(3, type);stm.setString(4, autho);stm.setString(5, press);stm.setInt(6, num);stm.setInt(7, bid);stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 删除图书信息,根据传入的bid作为条件* * @param bid*/public void deleteBook(int bid) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "delete from book where bid=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setInt(1, bid);stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 用户查找图书,根据输入的名称,使用like进行模糊查询,然后返回一个ArrayList数组类型* * @param name* @return*/public ArrayList<BookBean> getLikeList(String name) {// TODO Auto-generated method stubArrayList<BookBean> tag_Array = new ArrayList<BookBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from book where name like '%" + name + "%' or autho like '%" + name+ "%' or type like '%" + name + "%'";PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {BookBean tag = new BookBean();tag.setBid(rs.getInt("bid"));tag.setName(rs.getString("name"));tag.setCard(rs.getString("card"));tag.setType(rs.getString("type"));tag.setAutho(rs.getString("autho"));tag.setPress(rs.getString("press"));tag.setTimes(rs.getInt("times"));tag.setNum(rs.getInt("num"));tag_Array.add(tag);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}/*** 图书借阅函数,根据传入bid图书id,adminbean当前登录用户的信息,在借阅记录数据表中新插入一条记录* * @param bid* @param adminbean*/public void borrowBook(int bid, AdminBean adminbean) {// TODO Auto-generated method stubBookBean bookbean = new BookBean();bookbean = this.get_BookInfo(bid);// 生成日期的功能Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int day = c.get(Calendar.DATE);// 生成借阅开始日期String begintime = "" + year + "-" + month + "-" + day;month = month + 1;// 生成截止还书日期String endtime = "" + year + "-" + month + "-" + day;Connection conn = DBUtil.getConnectDb();String sql = "insert into history(aid,bid,card,bookname,adminname,username,begintime,endtime,status) values(?,?,?,?,?,?,?,?,?)";int rs = 0;PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setInt(1, adminbean.getAid());stm.setInt(2, bookbean.getBid());stm.setString(3, bookbean.getCard());stm.setString(4, bookbean.getName());stm.setString(5, adminbean.getUsername());stm.setString(6, adminbean.getName());stm.setString(7, begintime);stm.setString(8, endtime);stm.setInt(9, 1);rs = stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}String sql2 = "update book set times=? where bid=?";PreparedStatement stm2 = null;try {stm2 = conn.prepareStatement(sql2);stm2.setInt(1, bookbean.getTimes() + 1);stm2.setInt(2, bookbean.getBid());stm2.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}String sql3 = "update admin set times=? where aid=?";PreparedStatement stm3 = null;try {stm3 = conn.prepareStatement(sql3);stm3.setInt(1, adminbean.getTimes() + 1);stm3.setInt(2, adminbean.getAid());stm3.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 还书功能的函数,根据传入的hid借阅记录id,将status字段的值改为0,并将还书日期改变为当前日期* * @param hid*/public void borrowBook2(int hid) {// TODO Auto-generated method stub// 生成日期Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int day = c.get(Calendar.DATE);// 生成还书日期String endtime = "" + year + "-" + month + "-" + day;Connection conn = DBUtil.getConnectDb();String sql = "update history set endtime=?,status=? where hid=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, endtime);stm.setInt(2, 0);stm.setInt(3, hid);stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 图书延期,根据传入hid记录id,在借阅记录数据表中更新endtime记录* * @param hid* @param endtime*/public void AddTime(int hid, String endtime) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "update history set endtime=? where hid=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, endtime);stm.setInt(2, hid);stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

TUserDao.java

package com.code2life.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;import com.code2life.bean.AdminBean;
import com.code2life.bean.BookBean;
import com.code2life.bean.TUserBean;
import com.code2life.util.DBUtil;/*** 有关读者账号的连接数据库操作,登录验证,注册,修改账号,修改密码*/
public class TUserDao {/*** 登录验证功能,传入用户名和密码,在数据库中查找,如果找到了,返回true,没找到则返回false* * @param username* @param password* @return*/public boolean Login_verify(String username, String password) {Connection conn = DBUtil.getConnectDb();PreparedStatement stm = null;ResultSet rs = null;String sql = "select * from t_user where username='" + username + " 'and password='" + password + "'";try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();if (rs.next()) {return true;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return false;}/*** 注册账号的函数,传入账号,密码,手机号* * @param username* @param password* @param phone*/public void Register(String username, String password, String phone) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "insert into t_user(username,phone,password,status) values(?,?,?,?)";int rs = 0;PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, username);stm.setString(2, phone);stm.setString(3, password);stm.setInt(4, 1);rs = stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 新增管理员账号,传入密码,姓名,手机号* * @param username* @param password* @param phone*/public void Register2(String username, String password, String phone) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "insert into t_user(username,phone,password,status) values(?,?,?,?)";int rs = 0;PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, username);stm.setString(2, phone);stm.setString(3, password);stm.setInt(4, 2);rs = stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 根据传入的账号,密码,来查找对应的读者信息,返回一个TUserBean类型,* * @param username* @param password* @return*/public TUserBean getTUserInfo(String username, String password) {// TODO Auto-generated method stubTUserBean tUserbean = new TUserBean();Connection conn = DBUtil.getConnectDb();String sql = "select * from t_user where username= '"+username+"' and password= '"+password+"'";PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();if (rs.next()) {tUserbean.setId(rs.getInt("id"));tUserbean.setUsername(rs.getString("username"));tUserbean.setPhone(rs.getString("phone"));tUserbean.setPassword(rs.getString("password"));tUserbean.setStatus(rs.getInt("status"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tUserbean;}/*** 获取全部用户的信息,其中sql语句中的status=1,表示只查找读者,不显示管理员的* * @return*/public ArrayList<TUserBean> get_ListInfo() {ArrayList<TUserBean> tag_Array = new ArrayList<TUserBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from t_user where status=1";PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {TUserBean tUserBean = new TUserBean();tUserBean.setId(rs.getInt("id"));tUserBean.setUsername(rs.getString("username"));tUserBean.setPassword(rs.getString("password"));tUserBean.setPhone(rs.getString("phone"));tUserBean.setStatus(rs.getInt("status"));tag_Array.add(tUserBean);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}/*** 获取全部用户的信息,其中sql语句中的status=2,表示只查找管理员,不显示读者的* * @return*/public ArrayList<TUserBean> get_ListInfo2() {ArrayList<TUserBean> tag_Array = new ArrayList<TUserBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from t_user where status=2";PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {TUserBean tUserBean = new TUserBean();tUserBean.setId(rs.getInt("id"));tUserBean.setUsername(rs.getString("username"));tUserBean.setPassword(rs.getString("password"));tUserBean.setPhone(rs.getString("phone"));tUserBean.setStatus(rs.getInt("status"));tag_Array.add(tUserBean);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}/*** 获取全部用户的信息并排序,其中sql语句中的status=1,表示只查找读者,不显示管理员的* * @return*/public ArrayList<TUserBean> get_ListInfo3() {ArrayList<TUserBean> tag_Array = new ArrayList<TUserBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from t_user where status=1 order by times desc";PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {TUserBean tUserBean = new TUserBean();tUserBean.setId(rs.getInt("aid"));tUserBean.setUsername(rs.getString("username"));tUserBean.setPassword(rs.getString("password"));tUserBean.setPhone(rs.getString("phone"));tUserBean.setStatus(rs.getInt("status"));tag_Array.add(tUserBean);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}/*** 根据传入的id,查找到对应的读者的全部信息,返回一个TUserBean类型的数据* * @param id* @return*/public TUserBean get_AidInfo(int aid) {TUserBean tUserBean = new TUserBean();Connection conn = DBUtil.getConnectDb();String sql = "select * from t_user where aid=" + aid;PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();if (rs.next()) {tUserBean.setId(rs.getInt("aid"));tUserBean.setUsername(rs.getString("username"));tUserBean.setPassword(rs.getString("password"));tUserBean.setPhone(rs.getString("phone"));tUserBean.setStatus(rs.getInt("status"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tUserBean;}/*** 根据传入的id,查找到对应的读者的全部信息,返回一个TUserBean类型的数据,与上一个相似,只是id的类型为String* * @param id* @return*/public TUserBean get_AidInfo2(String aid) {TUserBean tUserBean = new TUserBean();Connection conn = DBUtil.getConnectDb();String sql = "select * from t_user where aid=" + aid;PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();if (rs.next()) {tUserBean.setId(rs.getInt("aid"));tUserBean.setUsername(rs.getString("username"));tUserBean.setPassword(rs.getString("password"));tUserBean.setPhone(rs.getString("phone"));tUserBean.setStatus(rs.getInt("status"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tUserBean;}/*** 修改读者的信息*/public void updateUser(int id, String username, String password, String phone) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "update t_user set username=?,phone=?,password=? where id=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, username);stm.setString(2, phone);stm.setString(3, password);stm.setInt(4, id);stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 修改管理员的信息*/public void updateAdmin(int id, String username, String password,String phone) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "update t_user set username=?,phone=?,password=? where id=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setString(1, username);stm.setString(2, phone);stm.setString(3, password);stm.setInt(4, id);stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 删除用户的信息,根据传入的id作为条件* * @param id*/public void deleteUser(int id) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "delete from t_user where id=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setInt(1, id);stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 删除管理员的信息,根据传入的id作为条件* * @param aid*/public void deleteAdmin(int id) {// TODO Auto-generated method stubConnection conn = DBUtil.getConnectDb();String sql = "delete from t_user where id=?";PreparedStatement stm = null;try {stm = conn.prepareStatement(sql);stm.setInt(1, id);stm.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 查找用户,根据输入的名称,使用like进行模糊查询,然后返回一个ArrayList数组类型* * @param name* @return*/public ArrayList<TUserBean> getLikeList(String name) {// TODO Auto-generated method stubArrayList<TUserBean> tag_Array = new ArrayList<TUserBean>();Connection conn = DBUtil.getConnectDb();String sql = "select * from t_user where username like '%" + name + "%' or id like '%" + name + "%'";PreparedStatement stm = null;ResultSet rs = null;try {stm = conn.prepareStatement(sql);rs = stm.executeQuery();while (rs.next()) {TUserBean tag = new TUserBean();tag.setId(rs.getInt("id"));tag.setStatus(rs.getInt("status"));tag.setUsername(rs.getString("username"));tag.setPassword(rs.getString("password"));tag.setPhone(rs.getString("phone"));tag_Array.add(tag);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {DBUtil.CloseDB(rs, stm, conn);}return tag_Array;}
}

servlet层:
AddBookServlet.java:

package com.code2life.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.code2life.dao.BookDao;/*** Servlet implementation class AddBookServlet*/
@WebServlet("/AddBookServlet")
public class AddBookServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public AddBookServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*      response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stub
//      response.getWriter().append("Served at: ").append(request.getContextPath());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse*      response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stub
//      doGet(request, response);// 设置编码类型request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");// 获取要添加图书的信息String card = request.getParameter("card");String name = request.getParameter("name");String type = request.getParameter("type");String autho = request.getParameter("autho");String press = request.getParameter("press");int num = Integer.parseInt(request.getParameter("num"));BookDao bookdao = new BookDao();// 调用函数,存入图书bookdao.addBook(card, name, type, autho, press, num);response.sendRedirect("/books/admin_book.jsp");}}

AddUserServlet.java

package com.code2life.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.code2life.dao.AdminDao;/*** Servlet implementation class AddUserServlet*/
@WebServlet("/AddUserServlet")
public class AddUserServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public AddUserServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*      response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stub
//      response.getWriter().append("Served at: ").append(request.getContextPath());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse*      response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stub
//      doGet(request, response);// 设置编码类型request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");// 获取要添加的读者的信息String username = request.getParameter("username");String password = request.getParameter("password");String name = request.getParameter("name");String email = request.getParameter("email");String phone = request.getParameter("phone");int lend_num = Integer.parseInt(request.getParameter("lend_num"));int max_num = Integer.parseInt(request.getParameter("max_num"));AdminDao userdao = new AdminDao();// 调用函数添加读者信息userdao.Register(username, password, name, email, phone, lend_num, max_num);response.sendRedirect("/books/admin_user.jsp");}}

写在最后

码代码不容易,需要的同学可以参考学习,全部代码不能都贴出,如果需要可以私博主V交流(Code2Life2)
最后,别忘了一键三连哦

Java Jsp+Servlet+mysql实现的图书借阅系统(系统管理员/图书管理员/读者 功能:图书信息管理、图书借阅、我的借阅记录、管理图书、用户管理、反馈)相关推荐

  1. java+jsp+servlet+mysql【网上预约挂号系统】(源码+论文+PPT+任务书+中期检查)

    系统功能 <1>浏览医院信息. <2>预约查询. <3>预约服务:已登录的用户可以选择适合自己的医生并预约就医时间. <4>管理员模块:对医生以及医生所 ...

  2. Java Jsp+Servlet+mysql实现的在线招聘系统(系统管理员/企业用户/学生 功能:招聘信息、投递简历、筛选简历、面试资料下载、就业信息、就业新闻、留言板等)

    博客目录 JSP在线招聘系统 实现功能截图 技术点总结: 代码 写在最后 JSP在线招聘系统 本系统是一套用户学生和企业投递简历以及筛选人才的网站,包含常用的招聘网站功能,美观实用. 实现功能截图 用 ...

  3. 基于javaweb+jsp的网上商城系统(java+jsp+servlet+mysql+ajax)

    基于javaweb+jsp的网上商城系统(java+jsp+servlet+mysql+ajax) 一.项目简述(+需求文档+PPT) 功能: 主页显示热销商品:所有商品展示,可进行商品搜索:点 击商 ...

  4. 基于JSP+Servlet+MySQL+的在线购物电子商务商城系统

    商城首页 首页信息 首页信息 登陆 商品列表 订单列表 个人信息 商品管理 添加商品 咨询列表 添加购物车 购物车管理 订单创建 技术描述 开发工具: Idea/Eclipse 数据库: mysql ...

  5. 基于 jsp + servlet + Mysql 实现 网上书店购物系统 (源码)

    文章目录 一.前言 二.相关技术: 三.功能分析: 1.前台: 2.后台: 四.效果展示: 1.登录与注册: 2.前台: 3.后台: 五.后记: 一.前言 该系统是简单的模仿 当当网 书店系统,分为前 ...

  6. Java Jsp+Servlet+mysql实现的火车票查询预定系统(管理员/普通用户 功能:火车票查询、订票付款退票改签、火车票信息管理、线路管理、站点管理等)

    博客目录 JSP火车票预定查询系统 实现功能截图 技术点总结 代码 写在最后 JSP火车票预定查询系统 本系统是一套模拟12306网站的火车票一站式操作系统,普通用户可以查询.添加.改签火车票等,管理 ...

  7. java jsp+servlet+mysql实现登录网页设计

    涉及下面几个文件: 1,登录页面 login.jsp 2,成功跳转页面 success.jsp 3,失败跳转页面 fail.jsp 4,servlet 处理类 LoginTestServlet.jav ...

  8. Java项目:仿天猫网上商城项目(java+jsp+servlet+mysql+ajax)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 前台: * 用户模块 * 分类模块 * 商品模块 * 购物车模块 * 订单模块 后台: * 管理员模块 * 分类管理模 ...

  9. java jsp servlet mysql 菜市场管理系统

    登录页面: 管理员部分功能: 1.用户管理 2.货物类型管理 3.进货管理 普通摊主部分功能: 1.申请分配管理 2.销售管理 和我联系 https://h5.m.taobao.com/awp/cor ...

最新文章

  1. Git log、diff、config 进阶
  2. 从国考大数据看中国哪个省的人最爱当官
  3. c#如何通过ftp上传文件_ftp自动上传文件,如何设置ftp自动上传文件及环境配置...
  4. all ,any,abs的使用
  5. 31 MM配置-采购-采购申请-采购申请审批策略-定义审批过程
  6. 跨域共享session (实现http跳转https 共享session)
  7. 字节跳动AI Lab招聘算法工程师,含全职和实习
  8. 昆明北大附中2021高考成绩查询,北大附中云南实验学校2021年招生代码
  9. 原来我不懂printf
  10. STL中的所有算法(70个)
  11. 《windows 鼠标指针文件 学习笔记》
  12. 按键精灵操作mysql数据库_按键精灵mysql数据库
  13. 理解充分条件与必要条件
  14. Ubuntu 关闭 onboard (屏幕键盘应用)开机自启
  15. 2018-09-27工作日报
  16. 【UE4】给制作的小地图加上方向指针
  17. 毕业就在小公司躺了3年,面试大厂发现,发现不会分布式没人要…
  18. 网络舆情监测与分析研判工作如何高效做好的解决方案
  19. 第九课 Java基础篇——面向对象(综合案例)
  20. Android 图片模糊、高斯模糊、毛玻璃的三种实现方法

热门文章

  1. Nginx(十九)nginx配置php
  2. 如何在虚拟机中安装ikuai软路由系统
  3. 百度小程序服务器,百度小程序
  4. MATLAB中linprog函数的用法
  5. 【css】css中使用calc的计算失效
  6. Oracle数据库主键自增的两种方式(SEQUENCE和触发器)
  7. ModelCheckpoint自动保存模型
  8. 深度学习中的强化学习和对抗学习
  9. 大型网站技术架构 读书笔记 (八) 固若金汤:网站的安全架构
  10. 婴幼儿用品行业打破传统经营模式 开启全渠道会员营销逆袭之路