第一个Java项目--小型图书管理系统的总结和感受

现在回头看看,这个图书管理系统做了将近有一个月了,
真的是慢,庆幸的是给做了出来,
没有半途而废,而且也熟悉了整个流程,例如数据库的连接和增删改查一些操作。

下面是我在整个过程遇到的一些问题和个人解决办法

1、连接数据库时时区警告和驱动不对?

设置URL时要在数据库后边加上: ?serverTimezone=UTC

在这里插入图片描述
JDBC 1.8加载驱动是:Class.forName(“com.mysql.cj.jdbc.Driver”)

2、界面怎么布局?
刚开始看了下那几个布局,有点懵,也不知道怎么搞,最后想到了一个方法,就是多开几个JPanel,
因为JPanel可以设置位置和大小(setBounds(x,y,width,height)方法),所以整个程序我都是用JPanel来固定位置的。有点菜。

3、借书功能怎么实现?
思路: 通过输入的id在数据库中查找,如果没找到,提示该图书不存在;
如果找到了,判断状态是否在馆,如果不在馆,提示该书被借走了;
如果找到了,且为在馆,那就可以借走,同时修改图书表中的图书状态和历史记录中的状态。
当时感觉这个很难,先写的增删改,没敢实现这个功能,后来想通了思路,很快就实现了,发现也没那么难。

4、怎么在主界面的右上角提示框中显示对应用户名?
这个问题是困扰我最久的,我描述一下问题:我在主界面中调用登录界面,登录界面给数据库操作,然后从数据库中获取的信息可以传到登录界面,但是传不到主界面,但是我主界面又要用信息中的用户名,这就很尴尬了,卡了很长时间。
解决思路: 刷新。首先在主界面放一个判断,就是用户名不为空时,就获取它,其次当我在主界面点登录时,会出现登录界面,同时关掉主界面,登录界面放一个方法来返回用户名,
当我登录成功后,重新调用主界面,当主界面代码执行到判断用户名不为空时,就获取,这样就实现了右上角显示:欢迎XXX了。

5、怎么在界面上添加表格框,让查询到的信息放进去?

		String [] columnNames = { "用户id", "用户名" };//开一个数组存放表头信息
		
		//DefaultTableModel(Object[] columnNames, int rowCount) 
        //构造一个 DefaultTableModel,它的列数与 columnNames 中元素的数量相同,并具有 rowCount 行 null 对象值。
		DefaultTableModel model = new DefaultTableModel(columnNames,11);
		
		JTable jTable = new JTable(model);
		
		//如果表格中的数据超过table大小,会自动添加滚动条
		JScrollPane scrollPane = new JScrollPane(jTable);
		
		//设置表格位置和大小
		scrollPane.setBounds(580,170, 430, 201);
		
		DefaultTableModel dtm = (DefaultTableModel) jTable.getModel();
		dtm.setRowCount(0);//初始化为0行
		
		//currentUser为数据库查询的结果集
		while(currentUser.next()) {
				Vector v = new Vector();
				v.add(currentUser.getString("userId"));
				v.add(currentUser.getString("username"));
				dtm.addRow(v);//查到的信息放到表格的行里面
		}
		
		frame.add(scrollPane);

总的来说,这一个系统做下来,有顺利的地方,有难到不要不要的地方,
有时候顺利的让人感觉太简单了,但难的地方难到吐血,搜都搜不知道怎么搜的那种。但当你跨过去的时候,你会发现这些问题也就不过如此,人生大概就是如此吧。
当然了,这个图书管理系统也有很多不足之处,在dao层没有用接口,直接在dao层写了,界面的话,纯手扣的,代码也有好多重复的,导致代码量剧增,很不好。

你可能感兴趣的:(java)