基于JSP+Servlet+MySQL的自助读书室
项目运行视频:点击查看
一、系统截图
二、开发环境以及技术架构
系统架构:本系统的开发是使用Java作为主要的编程语言编程开发,以主流的数据库MySQL存储数据,后台以MVC的设计模式为主要的技术支撑配合JSP,CSS作为页面显示Java,JavaScript完成页面的逻辑交互,同时引入编辑器插件UEditor,开发出一个简单实用、功能齐全的自助读书室管理系统。
开发环境: JDK7+eclipse+tomcat7+mysql5.5
三、系统功能
1读者身份
个人信息管理 查看个人信息 修改个人信息 自助书籍管理 查询书籍信息 自助借阅管理 查询借阅信息 自助归还管理 查询归还信息 自助罚款管理 罚款信息查询 系统注销管理 系统注销
2管理员身份
密码信息管理 重置个人密码 自助书籍管理 新书上映 书籍更新 书籍移除 书籍搜索 读书人员管理 新增人员 人员变更 移除人员 人员搜索 自助借阅管理 借阅信息管理 借阅信息查询 自助归还管理 归还信息管理 归还信息查询 自助罚款管理 新增罚款信息 罚款信息查询 系统注销管理 系统注销
四、下载链接
五、项目目录
六、系统实体类
1公共实体类
package com.bean;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import com.util.Constant;
import com.util.DBO;
public class ComBean {
private List list;
private ResultSet rs = null;
private int EVERYPAGENUM = 2;
private int count = -1;
private int qq = 0;
//声明时间变量
String date1=new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
//分页查询
public void setEVERYPAGENUM(int EVERYPAGENUM){
this.EVERYPAGENUM=EVERYPAGENUM;
}
public int getMessageCount(String sql) { //得到信息总数
DBO dbo=new DBO();
dbo.open();
try {
rs = dbo.executeQuery(sql);
rs.next();
count = rs.getInt(1);
return count;
} catch (SQLException ex) {
ex.printStackTrace();
return -1;
} finally {
dbo.close();
}
}
public int getPageCount() { //得到共多少页(根据每页要显示几条信息)
if (count % EVERYPAGENUM == 0) {
return count / EVERYPAGENUM;
} else {
return count / EVERYPAGENUM + 1;
}
}
public List getMessage(int page,String sql2,int rr) { //得到每页要显示的信息
DBO dbo=new DBO();
dbo.open();
List list = new ArrayList();
try {
rs = dbo.executeQuery(sql2);
System.out.println("=================");
System.out.println(sql2);
System.out.println("=================");
for (int i = 0; i < (page - 1) * EVERYPAGENUM; i++) {
rs.next();
}
for (int t = 0; t < EVERYPAGENUM; t++) {
if (rs.next()) {
qq++;
List list2=new ArrayList();
for(int cc=1;cc<=rr;cc++){
list2.add(rs.getString(cc));
}
list.add(list2);
} else {
break; //减少空循环的时间
}
}
System.out.println("++++++++++++++++");
System.out.println(list);
System.out.println("++++++++++++++++");
return list;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
} finally {
dbo.close();
}
}
public int comUp(String sql){
DBO dbo = new DBO();
dbo.open();
try{
int i = dbo.executeUpdate(sql);
if(i == 1){
return Constant.SUCCESS;
}
else{
return Constant.SYSTEM_ERROR;
}
}catch(Exception e){
e.printStackTrace();
return Constant.SYSTEM_ERROR;
}finally{
dbo.close();
}
}
public List getCom(String sql,int row){
DBO dbo = new DBO();
list = new ArrayList();
dbo.open();
try{
rs = dbo.executeQuery(sql);
while(rs.next()){
List list2 = new ArrayList();
for(int i=1;i<=row;i++){
list2.add(rs.getString(i));
}
list.add(list2);
}
return list;
}catch(Exception e){
e.printStackTrace();
return list;
}finally{
dbo.close();
}
}
public List get1Com(String sql,int row){
DBO dbo = new DBO();
list = new ArrayList();
dbo.open();
try{
rs = dbo.executeQuery(sql);
if(rs.next()){
for(int i=1;i<=row;i++){
list.add(rs.getString(i));
}
}
return list;
}catch(Exception e){
e.printStackTrace();
return list;
}finally{
dbo.close();
}
}
public String getString(String sql){
DBO dbo = new DBO();
list = new ArrayList();
dbo.open();
try{
rs = dbo.executeQuery(sql);
if(rs.next())
return rs.getString(1);
else return null;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
dbo.close();
}
}
public int getCount(String sql){
DBO dbo = new DBO();
dbo.open();
try{
rs = dbo.executeQuery(sql);
rs.next();
return rs.getInt(1);
}catch(Exception e){
e.printStackTrace();
return 0;
}finally{
dbo.close();
}
}
public float getFloat(String sql){
DBO dbo = new DBO();
dbo.open();
try{
rs = dbo.executeQuery(sql);
rs.next();
return rs.getInt(1);
}catch(Exception e){
e.printStackTrace();
return 0;
}finally{
dbo.close();
}
}
}
2数据库操作类
package com.util;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.activation.DataSource;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
public class DBO {
private Connection conn;
private Statement stmt;
private DataSource ds;
public DBO()
{
}
/**
打开数据库
*/
public void open()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/gxts?characterEncoding=utf-8","root","root");
stmt=conn.createStatement();
System.out.println("打开数据库连接");
}
catch (Exception ex)
{
System.err.println("打开数据库时出错: " + ex.getMessage());
}
}
/**
关闭数据库,将连接返还给连接池
*/
public void close()
{
try
{
// connMgr.freeConnection("java", conn);
conn.close();
System.out.println ("释放连接");
}
catch (SQLException ex)
{
System.err.println("返还连接池出错: " + ex.getMessage());
}
}
/**
执行查询
*/
public ResultSet executeQuery(String sql) throws SQLException
{
ResultSet rs = null;
rs = stmt.executeQuery(sql);
System.out.println ("执行查询");
return rs;
}
/**
执行增删改
*/
public int executeUpdate(String sql) throws SQLException
{
int ret = 0;
ret = stmt.executeUpdate(sql);
System.out.println ("执行增删改");
return ret;
}
/**
将SQL语句加入到批处理
*/
public void addBatch(String sql) throws SQLException
{
stmt.addBatch(sql);
}
/**
执行批处理
*/
public int [] executeBatch() throws SQLException
{
boolean isAuto=conn.getAutoCommit();
conn.setAutoCommit(false);
int [] updateCounts = stmt.executeBatch();
// conn.commit();
// conn.setAutoCommit(isAuto);
//conn.setAutoCommit(true);
return updateCounts;
}
public boolean getAutoCommit() throws SQLException
{
return conn.getAutoCommit();
}
public void setAutoCommit(boolean auto) throws SQLException
{
conn.setAutoCommit(auto);
}
public void commit() throws SQLException
{
conn.commit();
// this.close();
}
public void rollBack() throws SQLException
{
conn.rollback();
// this.close();
}
}
更多关于项目的描述可以点击JSP+Servlet+MySQL的图书管理系统