idea写一个Servlet以实现增删改查 Emp表,连接数据库
时间: 2024-02-03 10:03:25 浏览: 28
好的,这里是一个简单的Servlet实现增删改查Emp表的示例:
```java
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/EmployeeServlet")
public class EmployeeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public EmployeeServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String action = request.getParameter("action");
// JDBC连接信息
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
String user = "root";
String password = "password";
Connection conn = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
if ("add".equals(action)) {
// 处理新增请求
String ename = request.getParameter("ename");
int age = Integer.parseInt(request.getParameter("age"));
String sex = request.getParameter("sex");
String sql = "insert into Emp(ename,age,sex) values('" + ename + "'," + age + ",'" + sex + "')";
stmt.executeUpdate(sql);
out.println("新增员工成功!");
} else if ("update".equals(action)) {
// 处理修改请求
int id = Integer.parseInt(request.getParameter("id"));
String ename = request.getParameter("ename");
int age = Integer.parseInt(request.getParameter("age"));
String sex = request.getParameter("sex");
String sql = "update Emp set ename='" + ename + "',age=" + age + ",sex='" + sex + "' where id=" + id;
stmt.executeUpdate(sql);
out.println("修改员工成功!");
} else if ("delete".equals(action)) {
// 处理删除请求
int id = Integer.parseInt(request.getParameter("id"));
String sql = "delete from Emp where id=" + id;
stmt.executeUpdate(sql);
out.println("删除员工成功!");
} else {
// 处理查询请求
String sql = "select * from Emp";
ResultSet rs = stmt.executeQuery(sql);
out.println("<table border='1'><tr><th>ID</th><th>姓名</th><th>年龄</th><th>性别</th></tr>");
while (rs.next()) {
out.println("<tr><td>" + rs.getInt("id") + "</td><td>" + rs.getString("ename") + "</td><td>" + rs.getInt("age") + "</td><td>" + rs.getString("sex") + "</td></tr>");
}
out.println("</table>");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在这个示例中,我们处理了四种请求:add(新增)、update(修改)、delete(删除)和默认的查询请求。我们通过 `action` 参数来判断当前请求的类型,并根据请求类型执行不同的数据库操作。注意,在实际开发中,我们需要对用户输入进行校验和过滤,避免 SQL 注入等安全问题。