java服务器端开发-servlet:3_2、Servlet使用jdbc访问数据库:查询员工信息

目录

一、前言

二、查询个人员工信息

1、配置文件代码:web.xml

2、java代码:SelectOneEmpServlet.java

3、效果演示

三、查询所有员工数据表格显示

1、配置文件代码:web.xml

2、java代码:ListEmpServlet.java

3、效果演示

4、执行流程简单介绍

步骤1:浏览器输入地址

步骤2:匹配配置文件 web.xml 

步骤3:java类ListEmpServlet,进行数据库访问操作,并输出显示


一、前言

上一篇文章我们介绍了Servlet使用jdbc访问数据库:增加员工信息插入mysql数据库,详细可参考博文:原创 java服务器端开发-servlet:3_1、Servlet使用jdbc访问数据库:增加员工信息插入mysql数据库  所谓常见之“增删改查”,这篇文章我们来讲讲如何查询员工信息

二、查询个人员工信息

1、配置文件代码:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	version="3.1">
	
	<display-name>web02</display-name>
	<!-- t05_查询个人员工信息表格显示 -->
	<servlet>
		<servlet-name>selectOneEmp</servlet-name>
		<servlet-class>t05_查询个人员工信息.SelectOneEmpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>selectOneEmp</servlet-name>
		<url-pattern>/selectOne</url-pattern>
	</servlet-mapping>
	
</web-app>

2、java代码:SelectOneEmpServlet.java

package t05_查询个人员工信息;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
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;

/**
 * 查询个人员工信息
 * @UpdateTime:2011年02月28日 下午17:30:00
 * @ProjectName: 【项目名】
 * @ClassName:【类名】
 * @CategoryName:【类型】如:Activity
 * @author:luminal、邮箱 luminal_yyh@163.com
 * @since 1.0【版本】
 * @Description:(可以在这里描述这个类的作用)
 * 测试地址:
 * http://localhost:8080/web02/selectOne?id=1;//低级错误,不要加分号
 * http://localhost:8080/web02/selectOne?id=1
 * 
 * 别忘记数据库首先要添加过数据,才能进行查询
 * 否则查不到数据会报异常:java.lang.NumberFormatException: null
 */
public class SelectOneEmpServlet extends HttpServlet{
	public void service(HttpServletRequest request,HttpServletResponse response) 
	throws ServletException,IOException{
		
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		int id = Integer.parseInt(request.getParameter("id"));
		
		Connection conn = null;
		PreparedStatement prep = null;
		ResultSet rst = null;
		try {
			//Class.forName("com.mysql.jdbc.Driver"); //提示被弃用
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/jsd1108db",
					"root","你的mysql密码");
			prep = conn.prepareStatement(
					"select * from t_emp where id=?");
			prep.setInt(1, id);
			rst = prep.executeQuery();
			if(rst.next()){
				String name = rst.getString("name");
				double salary = rst.getDouble("salary");
				int age = rst.getInt("age");
				
				out.println("id:" + id + "<br/>");
				out.println("姓名:" + name + "<br/>");
				out.println("薪水:" + salary + "<br/>");
				out.println("年龄:" + age + "<br/>");
			}
		}catch(Exception e){
			e.printStackTrace();
			out.println("系统繁忙,稍后重试");
		}finally{
			if(rst != null){
				try {
					rst.close();
				} catch (SQLException e) {
				}
			}
			if( prep != null){
				try {
					prep.close();
				} catch (SQLException e) {
				}
			}
			if(conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
				}
			}
		}
	}
}

3、效果演示

查询数据,首先要添加过数据才能进行查询,我在上篇文章已经添加过,这里就不演示了!可以说上篇文章已经把基本步骤给走了一篇,如:安装配置mysql、mysql基本使用、下载配置mysql驱动等就不再讲了。

下面我们来操作演示一下:启动tomact,部署web项目,在谷歌浏览器输入:http://localhost:8080/web02/selectOne?id=1

我们可以看到查询的数据:

三、查询所有员工数据表格显示

1、配置文件代码:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	version="3.1">
	
	<display-name>web02</display-name>
	<!-- t06_查询所有员工数据表格显示 -->
	<servlet>
		<servlet-name>showFormEmp</servlet-name>
		<servlet-class>t06_查询所有员工数据表格显示.ListEmpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>showFormEmp</servlet-name>
		<url-pattern>/show</url-pattern>
	</servlet-mapping>
	
</web-app>

2、java代码:ListEmpServlet.java

package t06_查询所有员工数据表格显示;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
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;

/**
 * 查询所有员工数据表格显示【主要功能】
 * @UpdateTime:2011年02月28日 下午17:30:00
 * @ProjectName: 【项目名】
 * @ClassName:【类名】
 * @CategoryName:【类型】如:Activity
 * @author:luminal、邮箱 luminal_yyh@163.com
 * @since 1.0【版本】
 * @Description:(可以在这里描述这个类的作用)
 * 测试地址:
 * http://localhost:8080/web02/show
 */
public class ListEmpServlet extends HttpServlet{
	public void service(HttpServletRequest request,HttpServletResponse response) 
	throws ServletException,IOException{
		
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		Connection conn = null;
		PreparedStatement prep = null;
		ResultSet rst = null;
		try {
			//Class.forName("com.mysql.jdbc.Driver"); //提示被弃用
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/jsd1108db",
					"root","你的mysql密码");
			prep = conn.prepareStatement(
					"select * from t_emp");
			rst = prep.executeQuery();
			
			out.println("<table border='1' width='60%' " +
					"cellpadding='0' cellspacing='0'>");
			out.println("<tr><td>ID</td><td>姓名</td>" +
					"<td>薪水</td><td>年龄</td></tr>");
			
			while(rst.next()){
				int id = rst.getInt("id");
				String name = rst.getString("name");
				double salary =rst.getDouble("salary");
				int age = rst.getInt("age");
				out.println("<tr><td>" + id 
						+ "</td><td>" + name 
						+ "</td><td>" + salary 
						+"</td><td>" + age 
						+ "</td></tr>");
			}
			out.println("</table>");
			
		} catch (Exception e) {
			e.printStackTrace();
			out.println("系统繁忙,稍后重试");
		}finally{
			if(rst != null){
				try {
					rst.close();
				} catch (SQLException e) {
				}
			}
			if( prep != null){
				try {
					prep.close();
				} catch (SQLException e) {
				}
			}
			if(conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
				}
			}
		}
	}
	
}

3、效果演示

下面我们来操作演示一下:启动tomact,部署web项目,在谷歌浏览器输入:http://www.localhost:8080/web02/show

我们可以看到查询的数据:

4、执行流程简单介绍

步骤1:浏览器输入地址

http://www.localhost:8080/web02/show

步骤2:匹配配置文件 web.xml 

浏览器地址的 show  对应 <url-pattern>的 /show

然后找到 java包、类ListEmpServlet

	<!-- t06_查询所有员工数据表格显示 -->
	<servlet>
		<servlet-name>showFormEmp</servlet-name>
		<servlet-class>t06_查询所有员工数据表格显示.ListEmpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>showFormEmp</servlet-name>
		<url-pattern>/show</url-pattern>
	</servlet-mapping>

步骤3:java类ListEmpServlet,进行数据库访问操作,并输出显示

ListEmpServlet类查询数据库,并以表格的形式输出显示,目前的表格是在java类中嵌套 html 代码的形式,

后面的博文会慢慢的进行深入介绍和优化。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值