• 基于JavaGUI的简易图书管理系统


    图书管理系统
    目录
    图书管理系统 1
    一、综合实践任务 1
    1.1 系统设计目标 1
    1.2 需求分析 2
    工作人员任务 2
    读者功能 2
    额外提示 2
    1.3 总体设计 3
    1.4 数据库设计 4
    1.5 详细设计 9
    1.5.1 流程图设计 9
    1.5.2 文件设计 15
    1.5.3 文件说明 15
    1.5.4 SQL 语句说明 16
    1.6 系统测试 16
    1.7 系统设计与实现总结 32
    二、课程总结 33
    三、附录 33
    一、综合实践任务
    1.1 系统设计目标
    假设图书馆的工作人员要处理下列日常工作:
    借书:核实读者身份并检查是否存在下述情况:
    该读者借书的数额超标;
    该读者所借的书过期未还;
    该读者曾因借书过期被罚款而未交;
    如不存在上述情况,则登记借书信息;
    还书:检查所还图书是否损坏或过期,是则登记罚单信息并打印罚单,在交纳罚金前,不允许该读者继续借书。若图书损坏,注销该图书信息,否则进行还书登记。
    罚款:根据罚单收取罚金,同时取消该读者的借书限制。
    图书信息维护:新书上架、旧书下架及图书信息查询。
    读者信息维护:录入、注销、修改及查询读者信息。
    此外,图书馆还应向读者提供下列基本功能:
    查询图书信息;
    查询自己的基本信息和借书记录;
    续借;
    设计一个 B/S 或 C/S 模式的系统实现上述功能。
    1.2 需求分析
    实验需要设计一个图书管理系统,操作对象为管理人员和读者,要求能完成一定的功能,具体功能要求如下:
    工作人员任务
    图书信息维护:增删改书籍信息
    读者信息维护:增删改读者信息
    审核还书资格:查看书籍状态(是否损坏),给出损坏罚款或逾期罚款或还书成功决定
    读者功能
    借书:提交借书申请,在可借书状态下借书或续借
    申请还书:提交还书申请
    缴纳罚款:查询已提交且需交款的还书申请单,缴纳罚款。
    查询个人信息以及借书记录、查询图书信息
    额外提示
    不限制读者借书类型,但每本书只能续借一次(时间 30 天),需归还书籍后才可重新借阅。
    读者每次登录需在没有罚款的情况下,才可借书。
    读者借书有最大借书量限制,每本书也有当前存量限制。
    读者提出还书申请时间默认为还书时间,但具体还书信息回馈需等待工作人员审核。
    本文转载自:http://www.biyezuopin.vip/onews.asp?id=16547

    package sqlTools;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import database.DatabaseTools;
    import model.Book;
    
    public class BookTools {
    	private static Book newbook;
    	public Book getNewbook() {
    		return newbook;
    	}
    	public void setNewbook(Book newbook) {
    		BookTools.newbook = newbook;
    		String sql="select TSBH,TSMC,TSZZ,TSDJ,IFJC from T_TSXX where TSBH='" + newbook.getIdBook() + "'";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		ResultSet rs=null;
    		try {
    			PreparedStatement st =conn.prepareStatement(sql);
    			rs=st.executeQuery();
    			while(rs.next()){
    				newbook.setIdBook(rs.getString("TSBH"));
    				newbook.setNameBook(rs.getString("TSMC"));
    				newbook.setAuthor(rs.getString("TSZZ"));
    				newbook.setPrice(rs.getBigDecimal("TSDJ"));
    				newbook.setType(rs.getBoolean("IFJC"));
    			}
    			rs.close();
    			st.close();
    			conn.close();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public int return_TSBH() {
    		int rt=0;
    		String sql="select MAX(TSBH) from T_TSXX";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		try {
    			PreparedStatement st = conn.prepareStatement(sql);
    			ResultSet rs = st.executeQuery();
    			while(rs.next()) {
    				rt=rs.getInt("MAX(TSBH)");
    			}
    			st.close();
    			conn.close();
    		}catch (SQLException e) {
    		e.printStackTrace();
    		}
    		return rt;
    	}
    	
    	public boolean return_SFJC(String idBook) {
    		boolean rt=false;
    		String sql="select SFJC from T_TSXX where TSBH = ?";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		try {
    			PreparedStatement st = conn.prepareStatement(sql);
    			st.setString(1, idBook);
    			ResultSet rs = st.executeQuery();
    			while(rs.next()) {
    				rt=rs.getBoolean("SFJC");
    			}
    			st.close();
    			conn.close();
    		}catch (SQLException e) {
    		e.printStackTrace();
    		}
    		return rt;
    	}
    
    	public List<Book> BookData() {
    		String sql="select TSBH,TSMC,TSZZ,TSDJ,SFJC from T_TSXX";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		ResultSet rs=null;
    		List<Book> ls=new ArrayList<Book>();
    		try {
    			PreparedStatement st =conn.prepareStatement(sql);
    			rs=st.executeQuery(sql);
    			while(rs.next()){
    				Book book=new Book();
    				book.setIdBook(rs.getString("TSBH"));
    				book.setNameBook(rs.getString("TSMC"));
    				book.setPrice(rs.getBigDecimal("TSDJ"));
    				book.setType(rs.getBoolean("SFJC"));
    				book.setAuthor(rs.getString("TSZZ"));
    				ls.add(book);
    			}
    			rs.close();
    			st.close();
    			conn.close();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return ls;
    	}
    	
    	public List<Book> BookData(String TSMC) {
    		String sql="select TSBH,TSMC,TSZZ,TSDJ,SFJC from T_TSXX where TSMC like'%" + TSMC + "%'";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		ResultSet rs=null;
    		List<Book> ls=new ArrayList<Book>();
    		try {
    			PreparedStatement st =conn.prepareStatement(sql);
    			rs=st.executeQuery(sql);
    			while(rs.next()){
    				Book book=new Book();
    				book.setIdBook(rs.getString("TSBH"));
    				book.setNameBook(rs.getString("TSMC"));
    				book.setPrice(rs.getBigDecimal("TSDJ"));
    				book.setType(rs.getBoolean("SFJC"));
    				book.setAuthor(rs.getString("TSZZ"));
    				ls.add(book);
    			}
    			rs.close();
    			st.close();
    			conn.close();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return ls;
    	}
    	
    	public Book Search_Book(String TSBH) {
    		String sql="select * from T_TSXX where TSBH='" + TSBH + "'";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		ResultSet rs=null;
    		Book book = null;
    		try {
    			PreparedStatement st =conn.prepareStatement(sql);
    			rs=st.executeQuery(sql);
    			while(rs.next()){
    				book=new Book();
    				book.setIdBook(rs.getString("TSBH"));
    				book.setNameBook(rs.getString("TSMC"));
    				book.setPrice(rs.getBigDecimal("TSDJ"));
    				book.setType(rs.getBoolean("SFJC"));
    				book.setAuthor(rs.getString("TSZZ"));
    			}
    			rs.close();
    			st.close();
    			conn.close();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return book;
    	}
    	
    	public int AddBook(Book book) {
    		int i=0;
    		String sql="insert into T_TSXX (TSBH,TSMC,TSZZ,TSDJ,SFZJ) values(?,?,?,?,?)";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		try {
    			PreparedStatement st = conn.prepareStatement(sql);		
    			st.setString(1, book.getIdBook());
    			st.setString(2, book.getNameBook());
    			st.setString(3, book.getAuthor());
    			st.setBigDecimal(4, book.getPrice());
    			st.setBoolean(5, book.getType());
    			i=st.executeUpdate();
    			st.close();
    			conn.close();
    		}catch (SQLException e) {
    		e.printStackTrace();
    		}
    		return i;
    	}
    	
    	public int UpdateBook(Book book) {
    		int i=0;
    		String sql="update T_TSXX set TSMC=?,TSZZ=?,TSDJ=?,SFJC=? where TSBH= ?";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		try {
    			PreparedStatement st = conn.prepareStatement(sql);
    			st.setString(1, book.getNameBook());
    			st.setString(2, book.getAuthor());
    			st.setBigDecimal(3, book.getPrice());
    			st.setBoolean(4, book.getType());
    			st.setString(5, book.getIdBook());
    			i=st.executeUpdate();
    			st.close();
    			conn.close();
    		}catch (SQLException e) {
    		e.printStackTrace();
    		}
    		return i;
    	}
    
    	//删除图书,同时更新图书编号
    	public int DeleteBook(String idbook) {
    		int i=0;
    		String sql1="delete from T_TSXX where TSBH = ?";
    		String sql2="update T_TSXX set TSBH=TSBH-1 where TSBH > ?";
    		String sql3="update T_JYXX set TSBH=TSBH-1 where TSBH > ?";
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		try {
    			PreparedStatement st = conn.prepareStatement(sql1);
    			st.setString(1, idbook);
    			i=st.executeUpdate();
    			st = conn.prepareStatement(sql2);
    			st.setString(1, idbook);
    			i=st.executeUpdate();
    			st = conn.prepareStatement(sql3);
    			st.setString(1, idbook);
    			i=st.executeUpdate();
    			st.close();
    			conn.close();
    		}catch (SQLException e) {
    		e.printStackTrace();
    		}
    		return i;
    	}
    	
    	public boolean whetherInStock(String TSBH) {
    		boolean judge=false;
    		DatabaseTools db = new DatabaseTools();
    		Connection conn = db.getConn();
    		String sql = "select SFJC from T_TSXX where TSBH = ?";
    		try {
    			PreparedStatement st =conn.prepareStatement(sql);
    			st.setString(1, TSBH);
    			ResultSet rs = st.executeQuery();
    			while (rs.next()) {
    				if(rs.getBoolean("SFJC")){
    					judge = true;
    				}
    			}
    			st.close();
    			conn.close();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return judge;
    	}
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    C++ STL: std::vector与std::array的深入对比
    如何用GPT高效地处理文本、文献查阅、PPT编辑、编程、绘图和论文写作?
    【Spring Boot 集成应用】Spring Security集成整合配置使用
    【node拓展】web开发模式 | express应用程序生成器
    vue-自适应滑动条overflow: auto
    2022年0701-Com.Java.Basis第五课《针对流程控制的语句练习题》
    JS中this的绑定规则
    异步编程规避Redis的阻塞(中)
    MYSQL数据库-数据类型
    基于Python的性能分析
  • 原文地址:https://blog.csdn.net/newlw/article/details/126084297