详解DAO模式(下)

详解DAO模式(下)

  在上一节我们已经把DAO的开发流程完整讲解一遍了,对于刚接触DAO模式的同学来说可能会比较难懂。不过没关系,想当初我接触DAO模式的时候也是一头雾水,根本不知道整个流程怎么走的。
  但好学的我一边阅读程序一边理顺程序的脉络,晚上画出了第一节那里的关系图。虽然还是有点模糊,但是效果确实不错!而现在再看那幅图,感觉有一种力量驱使我的脚步,在光滑的地上,摩擦~摩擦~      -_-|||
  好,话归正题!
  我们这节主要讲的是在JSP中调用DAOFactory类返回的对象进行员工信息的插入和检索。相信大家对于HTML和JSP都有一定的基础了吧,所以老夫就简单描述一下思路,然后贴上代码就完事了哦!因为一晚上都在对着电脑写文章,感觉好激动哦!晚上不能太激动,会睡不着的!
  

(一)员工信息简单录入


  先在项目WebRoot下新建一个HTML网页,主要功能是使用控件获取用户录入的信息。在标签<form>里面的action填写提交的目标网页,以及员工属性控件的名称最好与Emp表里的属性一致。HTML代码如下:
  
<!DOCTYPE html>
<html>
<head>
<title>empInsert.html</title>
</head>
<body>
<h1>雇员信息添加表</h1>
<form action="insert.jsp" method = "post">
员工编号:<input type = "text" name = "empID"><br>
员工姓名:<input type = "text" name = "empName"><br>
工作类型:<input type = "text" name = "job"><br>
入职日期:<input type = "text" name = "hireDate"><br>
员工工资:<input type = "text" name = "salary"><br>
<input type = "reset" value = "重置"><input type = "submit" value = "提交">
</form>
</body>
</html>


  然后再新建一个JSP页面,用以处理数据库的信息插入以及显示录入的成功与否。要在JSP中使用DAOFactory等等类,同样也需要导入类文件。导入的位置在JSP的指令处。指令如下:
<%@ page language="java" import="java.util.*" import="java.text.*"
contentType="text/html" pageEncoding="GBK" import="factory.*"
import="vo.*"
%>

JSP网页代码如下:

<span style="font-size:18px;">	<%@ page language="java" import="java.util.*" import="java.text.*"
		contentType="text/html" pageEncoding="GBK" import="factory.*"
		import="vo.*"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>insert page !</title>
</head>
<%
	request.setCharacterEncoding("GBK");
%>
<body>
	<%
		Emp emp = new Emp();
		emp.setEmpID(Integer.parseInt(request.getParameter("empID")));
		emp.setEmpName(request.getParameter("empName"));
		emp.setJob(request.getParameter("job"));
		emp.setHireDate(new SimpleDateFormat("yyyy-mm-dd").parse(request<span style="white-space:pre">	</span>//注意:由于页面没有设置格式验证
				.getParameter("hireDate")));  <span style="white-space:pre">				</span>  //所以要按照规定的日期格式来填写
		emp.setSalary(Float.parseFloat(request.getParameter("salary")));
	%>
	<%
		try {
			if (!DAOFactory.getIEmpDAOInstance().doCreat(emp)) {
	%>
	<h1>雇员信息添加成功!</h1>
	<%
		} else {
	%>
	<h1>雇员信息添加失败!</h1>
	<%
		}
		} catch (Exception e) {
			e.printStackTrace();
		}
	%>
</body>
</html></span>

效果图:




(二)员工信息简单检索

该JSP同样需要导入相关的类文件,尔后可以模糊检索用户的姓名和工作,结果以表格显示。代码如下:
  
<%@page import="factory.DAOFactory"%>
<%@page import="java.util.List"%>
<%@ page language="java" import="java.util.*" import="vo.*"
	import="DAOFactory.*" contentType="text/html" pageEncoding="GBK"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Select page !</title>
</head>
<%
	request.setCharacterEncoding("GBK");
%>
<body>
	<form action="select.jsp" method="post">
		<input type="text" name="keyWord">   
		<input type="submit" value="检索">
	</form>
	<%
		String keyWord = request.getParameter("keyWord");
		try {
			List<Emp> all = DAOFactory.getIEmpDAOInstance()
					.findAll(keyWord);
			Iterator<Emp> iter = all.iterator();
	%>
	<table border="2">
		<tr>
			<td>员工编号</td>
			<td>员工姓名</td>
			<td>工作类型</td>
			<td>入职日期</td>
			<td>员工工资</td>
		</tr>
		<%
			while (iter.hasNext()) {
					Emp emp = iter.next();
		%>
		<tr>
			<td><%=emp.getEmpID()%></td>
			<td><%=emp.getEmpName()%></td>
			<td><%=emp.getJob()%></td>
			<td><%=emp.getHireDate()%></td>
			<td><%=emp.getSalary()%></td>
		</tr>

		<%
			}
		%>

	</table>

	<%
		} catch (Exception e) {
			e.printStackTrace();
		}
	%>
</body>

</html>


效果图:


  
  

【相关错误】java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

  在检索的时候有可能会出现以上错误,原因是:Myeclipse项目\WebRoot\WEB-INF\lib的目录下同样也需要一个驱动程序包。复制一个ojdbc6.jar进去即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章