现在的位置: 首页 > 综合 > 正文

图书管理系统注意事项

2017年11月07日 ⁄ 综合 ⁄ 共 2054字 ⁄ 字号 评论关闭

----------------------
android培训
java培训、期待与您交流! ----------------------

今天完成了web程序设计课程的最后一个实验——简单的图书管理系统

本系统要求设计一个通用的基于浏览器/服务器的简单图书管理系统,实现用户的注册登陆,以及图书的查询借阅

这个程序从整体的思路上并不难,只是实现表单向servlet传值,从数据库访问数据,servlet进行数据验证,将最终结果显示于JSP页面即可。

但是这个看似不难的程序却让我费尽了心思才完成。(这反映出平时代码量积累得太少的问题

再次,我将出现的问题记录下来,以供以后学习甚至于工作之时参考与提醒!

第一、忘记导入需要的jar

可能在别人看来比较弱智的问题,就是我经常忘记导入链接数据库所需要的jar包。在这个实验中,开始的时候我是用mysql数据库,而一开始我也想到了导入jar包。后来由于实验的要求,我换用了sqlserver2005,之后我就忘记导入jar包了。找了半天错误却没有找到。后来还是别人提示我的我才注意到了。

解决方案:

1、由于以后的web项目中避免不了使用数据库,所以在建立项目的时候要养成建立项目即导入jar包的习惯。

2、注意平时异常方面的积累,在碰到经常碰到的异常的时候要注意,以便以后出现一样的异常能够迅速找到解决方案。

第二、sql语句

可以这么说,做了这么几次试验,让我话费时间最多的就是sql语句。在学习数据库的时候,一直没有记那些DDL和DML语句,总是感觉这些应该是数据库管理员才需要做的事情,其实根本就不是这么一回事儿,在编写软件的时候,这些语句对于一个合格的程序员来说应该顺理成章的就写对,而不是要查找书才能写出来。而且,不能的数据库,其sql语句也有不同,熟悉常用数据库的常用语句对于提供编写代码的速度非常重要。

解决方案:

熟记常用数据库的常用sql语句。

第三、ps.executeQuery()ps.executeUpdate()

众所周知,这两个代码的功能都是执行sql语句。但是ps.executeQuery()要求返回一个结果集,而ps.executeUpdate()不要求返回结果集。所以在执行查询等语句的时候要使用

ps.executeQuery()语句,而如果使用删除,修改等语句的时候则使用ps.executeUpdate()语句。

第四、从servlet中向JSP传递参数。

传递参数不止可以传递String类型的变量,而且可以传递自定义类型的变量。

例如:req.setAttribute("bookinfo",book.toString()) ;
req.getRequestDispatcher(pathSuccess).forward(req,resp) ;

第五、标准的连接数据库操作

我感觉连接数据库操作的步骤是固定的,只要是用JDBC来连接数据库就这样做是最好的。

首先要建立一个Util包:

public final class JDBCUtils {
	private static String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
	private static String user = "sa";
	private static String password = "123456";

	private JDBCUtils() {
	}

	static {
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			throw new ExceptionInInitializerError(e);
		}
	}

	public static Connection getConnection() throws SQLException {
		return DriverManager.getConnection(url, user, password);
	}

	public static void free(ResultSet rs, Statement st, Connection conn) {
		try {
			if (rs != null)
				rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (st != null)
					st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				if (conn != null)
					try {
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
			}
		}
	}
	
}

然后再*DaoImp中就可以调用Util包中的方法即可。

----------------------
android培训
java培训、期待与您交流! ----------------------

抱歉!评论已关闭.