续上 编写Servlet查询数据库,列出员工信息列表

编写一个Servlet,通过JDBC连接MySQL数据库,在网页中显示数据库信息。

此部分续上一篇:使用JDBC添加员工信息。

后面的步骤为在原有项目基础上添加的。

Step1:新建一个ListEmpServlet.java

package web;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ListEmpServlet extends HttpServlet{
	protected void service(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException,IOException{
		//保证正确读取Post提交来的中文
		request.setCharacterEncoding("utf-8");
		//保证正确输出中文
		response.setContentType("text/html;charset=utf-8");
		//获取输出流对象,并输出信息
		PrintWriter out=response.getWriter();
		//获取表单提交的数据
		//String name= request.getParameter("name");
		//double salary = Double.valueOf(request.getParameter("salary"));
		//int age = Integer.valueOf(request.getParameter("age"));
		//将数据插入到数据库t_emp表中
		Connection conn = null;
		java.sql.PreparedStatement stat=null;
		try {
			//1、加载MySQL的JDBC的驱动
			Class.forName("com.mysql.jdbc.Driver");
			//2、取得连接的URL,能访问MySQL数据库的用户名和密码
			String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
			String username = "root";
			String password = "123456"; 
			//3、创建与MySQL数据库的连接类的实例
			conn=DriverManager.getConnection(url,username,password);
			stat=conn.prepareStatement("select * from t_emp");
			ResultSet rs = stat.executeQuery();
			//4、输出表格之前的页面标记
			out.println("<HTML>");
			out.println("<HEAD></HEAD>");
			out.println("<BODY>");
			out.println("<table borde='1' cellpadding='0'"+
			             "cellspacing='0' width='60%'");
			out.println("<caption>员工信息列表</caption>");  //定义表格标题
			out.println("<tr><td>ID</td><td>姓名</td><td>薪水</td>"+
			               "<td>年龄</td></tr>");
			//3、遍历结果集,以表格形式输出数据
			while(rs.next()){
				int id=rs.getInt("id");
				String name=rs.getString("name");
				double salary=rs.getDouble("salary");
				int age=rs.getInt("age");
				out.println("<tr><td>"+
				            id+"</td><td>"+
				            name+"</td><td>"+
				            salary+"</td><td>"+
				            age+"</td><td>");
			}
			out.print("</table>");
			out.print("<a href='addEmp.jsp'>增加员工信息</a>");
			out.println("</body>");
			out.println("</HTML>");
		} catch (Exception e) {
			e.printStackTrace();
			out.print("系统繁忙,稍后重试");
		}finally{
			if(stat!=null){
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				
			}
		}
	}
}

step2 : 在原有的web.xml文件中添加

如下:

 <servlet>
  	<servlet-name>listEmpServlet</servlet-name>
  	<servlet-class>web.ListEmpServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>listEmpServlet</servlet-name>
  	<url-pattern>/list</url-pattern>  <!-- 之前必须是addEmp.jsp,提交表单后出现在地址栏的地址 -->
  </servlet-mapping>

step3:部署,在浏览器查看

http://localhost:8084/web02_exec/list

续上 编写Servlet查询数据库,列出员工信息列表_第1张图片



你可能感兴趣的:(mysql,jdbc,servlet,列出员工信息)