java服务器端开发-servlet:3_6、Servlet使用jdbc访问数据库:修改更新员工信息

目录

一、前言

二、效果演示

1、查询员工数据列表

2、修改某位员工数据

三、具体代码-修改更新员工信息

1、java代码- 查询员工数据列表显示:ListEmpServlet.java

2、java代码-编辑修改数据:LoadEmpServlet.java

3、java代码-得到编辑提交的数据,更新到数据库:UpdateEmpServlet.java

4、配置文件:web.xml


一、前言

上一篇文章我们介绍了:Servlet使用jdbc访问数据库,如何删除个人、所有员工信息,然后重定向到员工列表,详细可参考博文:java服务器端开发-servlet:3_5、Servlet使用jdbc访问数据库:删除个人、所有员工信息,重定向到员工列表 这篇文章我们将介绍Servlet使用jdbc访问数据库:修改更新员工信息

二、效果演示

1、查询员工数据列表

启动tomact,部署web项目,在谷歌浏览器输入:http://localhost:8080/web06/show

2、修改某位员工数据

点击右边修改即可,我这里分别修改了两条数据如下:

依次修改提交后,最终的效果如下图

 

三、具体代码-修改更新员工信息

1、java代码- 查询员工数据列表显示:ListEmpServlet.java

package t10_修改员工信息_重定向到员工列表;

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;

/**
 * 查询员工数据列表显示
 */
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("<caption>"+"员工信息表"+"</caption>");//表头
			out.println("<tr><td>ID</td><td>姓名</td>" +
					"<td>薪水</td><td>年龄</td>" +
					"<td>操作</td></tr>");
			//循环期间(遍历结果集),Connection连接不能关闭
			//如果先放到集合里面,就没问题
			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><td>" +
								"<a href='load?id=" 
						+ id + "'>修改</a></td></tr>");
			}
			out.println("</table>");
			
			//out.println("<a href='addEmp.html'>添加新员工</a>");
			
		} 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) {
				}
			}
		}
	}
	
}


2、java代码-编辑修改数据:LoadEmpServlet.java

package t10_修改员工信息_重定向到员工列表;

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;

/**
 * 编辑修改数据,提交到--->UpdateEmpServlet
 */
public class LoadEmpServlet 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("<form action='update?id=" + id + "' method='post'>");
				out.println("id:" + id + "<br/>");
				//disabled='true'文字会变成灰色,不可编辑。
				//readOnly='true'文字不会变色,也是不可编辑的
				//out.println("<input type='hidden' name='id' value='" 
				//+ id + "'/>");
				out.println("姓名:<input name='name' value='" 
						+ name + "'/><br/>");
				out.println("薪水:<input name='salary' value='" 
						+ salary + "'/><br/>");
				out.println("年龄:<input name='age' value='" 
						+ age + "'/><br/>");
				out.println("<input type='submit' value='提交'/>");
				out.println("</form>");
			}
			
		}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、java代码-得到编辑提交的数据,更新到数据库:UpdateEmpServlet.java

package t10_修改员工信息_重定向到员工列表;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
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 UpdateEmpServlet extends HttpServlet {
	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		request.setCharacterEncoding("utf-8");
		int id = Integer.parseInt(request.getParameter("id"));
		String name = request.getParameter("name");
		double salary = Double.parseDouble(request.getParameter("salary"));
		int age = Integer.parseInt(request.getParameter("age"));
		
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		// 将员工信息插入数据库
		Connection conn = null;
		PreparedStatement prep = 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("update t_emp " +
					"set name=?,salary=?,age=? where id=?");
			prep.setString(1, name);
			prep.setDouble(2, salary);
			prep.setInt(3, age);
			prep.setInt(4, id);
			prep.executeUpdate();
			
			response.sendRedirect("show");
			
		} catch (Exception e) {
			e.printStackTrace();
			out.println("系统繁忙,稍后重试");
		} finally {
			if (prep != null) {
				try {
					prep.close();
				} catch (SQLException e) {
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
				}
			}
		}

	}

}


4、配置文件: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>web06</display-name>
	
	<!-- t10_修改员工信息_重定向到员工列表 -->
	<!-- 查询员工信息 -->
	<servlet>
		<servlet-name>showFormEmp</servlet-name>
		<servlet-class>t10_修改员工信息_重定向到员工列表.ListEmpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>showFormEmp</servlet-name>
		<url-pattern>/show</url-pattern>
	</servlet-mapping>
	
	<!-- 编辑员工信息 -->
	<servlet>
		<servlet-name>loadEmp</servlet-name>
		<servlet-class>t10_修改员工信息_重定向到员工列表.LoadEmpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>loadEmp</servlet-name>
		<url-pattern>/load</url-pattern>
	</servlet-mapping>
	
	<!-- 更新员工信息 -->
	<servlet>
		<servlet-name>updateEmp</servlet-name>
		<servlet-class>t10_修改员工信息_重定向到员工列表.UpdateEmpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>updateEmp</servlet-name>
		<url-pattern>/update</url-pattern>
	</servlet-mapping>
	
</web-app>

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

被开发耽误的大厨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值