项目四:图书管理系统

本文档详述了一个基于Swing+jdbc+MySQL技术的图书管理系统的实现过程,包括数据库设计、Java操作及用户界面设计。系统实现了图书的增删改查、用户登录验证以及图书类别管理等功能,具有良好的用户交互界面。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

此图书管理系统实现了一个系统的基本功能,是一种流程简单,效率较高的查询系统。

项目具体要求

1、设计一个简单的图书管理系统,可以对图书的相关信息进行一些基本操作,包括数据的添加、修改,删除和浏览;能使用查询功能,快速查看到指定的图书信息。
2、在添加图书类别基本信息、图书基本信息相关数据时,图书类别号不能重复,不能添加重复的图书信息。
3、 应用程序提供操作界面,可以方便用户进行功能选择,实现信息的管理和查询,并可以清晰地显示相关信息。

二、项目实现过程

1.项目相关

技术:Swing+jdbc+MySQL
开发工具:Java2020,提前添加插件windowbuilder

2.数据库相关操作

①建立名为db_book的数据库,字符集选择utf8,方便数据库可以正常显示中文字符。
在这里插入图片描述
②在名为db_book的数据库下创建三个表。
创建t_book表
在这里插入图片描述
t_book表中的相关属性如下:
bookDesc属性为图书内容描述,所有将其数据类型设为varchar(1000)
在这里插入图片描述
在这里插入图片描述
创建t_booktype表
在这里插入图片描述
t_booktype表中的相关属性如下:
注意将id的约束设为主键,非空并且可以自增。
在这里插入图片描述
创建t_user表
在这里插入图片描述
t_user表中的相关属性如下:
注意将id的约束设为主键,非空并且自增。
在这里插入图片描述
③创建一个model,将t_book表与t_booktype进行主外键关联。
首先打开架构设计器,添加要建立关联的两个表。
在这里插入图片描述
分别添加两个表的属性。
进入EER界面,将两个表要关联的属性进行连线。
在这里插入图片描述
以上为数据库的相关操作。

3.Java相关操作

①首先建立一个project,命名为BookManager
在这里插入图片描述
②添加MySQL连接驱动
在这里插入图片描述
③创建四个包,分别用来实现与MySQL的连接以及图书管理实体和图书管理界面。
在这里插入图片描述
④在第一个包下创建三个类,分别用来实现图书类别,图书信息的增查改删以及用户登录验证。
在这里插入图片描述
例如:
图书信息的修改

/**
	 * 图书信息修改
	 * @param con
	 * @param book
	 * @return
	 * @throws Exception
	 */
	public int update(Connection con,Book book)throws Exception{
		String sql="update t_book set bookName=?,author=?,sex=?,price=?,bookDesc=?,bookTypeId=? where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1,book.getBookName());
		pstmt.setString(2,book.getAuthor());
		pstmt.setString(3,book.getSex());
		pstmt.setFloat(4,book.getPrice());
		pstmt.setString(5,book.getBookDesc());
		pstmt.setInt(6,book.getBookTypeId());
		pstmt.setInt(7,book.getId());
		return pstmt.executeUpdate();
	}

⑤在第二个包下创建三个类,分别用来实现图书信息,图书类别和用户实体的定义。
在这里插入图片描述
例如:
用户实体的实现:

/**
 * 用户实体
 * @author WenRan
 *
 */
public class User {
	private int id;//编号
	private String userName;//用户名
	private String password;//密码
	
	//用来辅助LogOnFrm,连接到数据库
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public User(String userName, String password) {
		super();
		this.userName = userName;
		this.password = password;
	}


	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	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;
	}
}

⑥在第三个包下创建两个类,分别是数据库工具类和字符串工具类
在这里插入图片描述
例如:
字符串工具类

/**
 * 字符串工具类
 * @author WenRan
 *
 */
public class StringUtil {
	/**
	 * 判断登陆界面输入的字符串是否为空
	 * @param str
	 * @return
	 */
	public static boolean isEmpty(String str) {
		if(str==null||"".equals(str.trim())) {
			return true;
		}else {
			return false;
		}
			
	}
	
	/**
	 * 判断登陆界面输入的字符串是否不为空
	 * @param str
	 * @return
	 */
	public static boolean isNotEmpty(String str) {
		if(str!=null && !"".equals(str.trim())) {
			return true;
		}else {
			return false;
		}
			
	}

}

⑦在第四个包下创建多个类,分别实现图书管理系统各个界面的设计:
图书添加内部窗体,图书管理内部窗体,图书类型内部窗体等
在这里插入图片描述
以图书管理内部窗体为例:
图书事件的删除处理:

/**
	 * 图书删除事件处理
	 * @param evt
	 */
	private void bookDeleteActionPerformed(ActionEvent evt) {
		String id=idTxt.getText();//获取id
		if(StringUtil.isEmpty(id)) {//id为空
			JOptionPane.showMessageDialog(null,"请选择要删除的记录");
			return ;
		}
		//为防止用户误点,要进行一个确认设置
		int n=JOptionPane.showConfirmDialog(null,"确定要删除该记录吗?");
		if(n==0) {
			Connection con=null;//开始连接
			try {
				con=dbUtil.getCon();	
				int deleteNum=bookDao.delete(con,id);
				if(deleteNum==1) {
					JOptionPane.showMessageDialog(null,"删除成功");
		            this.resetValue();
		            this.fillTable(new Book());
				}else {
					JOptionPane.showConfirmDialog(null,"删除失败");	
				}
			}catch(Exception m) {
				m.printStackTrace(); 
				JOptionPane.showMessageDialog(null,"删除失败");
			}finally {
				try {
					dbUtil.closeCon(con);	//关闭数据库		
				}catch(Exception s) {
					s.printStackTrace();
				}		
				
			}		
			
		}
		
	}

打开windowbuilder编辑界面可以对相关界面进行设计,如下:
在这里插入图片描述
经过以上操作,与管理员,图书,图书类别这三个实体的相关操作均已实现,界面也通过windowbuilder进行了相关设计,完成了图书管理系统的基本功能。在界面设计的部分也可以添加相应图标,让界面不会太单调。

项目实现界面

①登录,输入用户名和密码进行登录。
在这里插入图片描述
②图书管理主界面
在这里插入图片描述

③图书类别添加界面
在这里插入图片描述
④图书类别维护界面(包含图书类别的查询修改删除)
在这里插入图片描述
⑤图书添加界面
在这里插入图片描述
⑥图书维护界面(包含图书信息的查询修改删除)
在这里插入图片描述
⑦关于我们(简要介绍)
在这里插入图片描述
⑧退出系统
在这里插入图片描述

总结

以上即为图书管理系统的详细实现步骤,还存在相关细节问题,会继续改善。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值