mysql+jdbc+servlet+jsp实现增删改查
时间: 2023-09-12 07:07:00 浏览: 270
MySQL是一个常用的关系型数据库管理系统,可以通过Java中的JDBC技术来连接和操作MySQL数据库。在Java Web应用中,可以通过Servlet和JSP技术来实现MySQL数据库的增删改查操作。
以下是一个简单的示例,演示如何使用MySQL JDBC连接MySQL数据库,并通过Servlet和JSP实现数据的增删改查操作。
1.导入MySQL JDBC驱动程序
在Java Web项目中,需要将MySQL JDBC驱动程序添加到项目的classpath中,以便在程序运行时可以动态加载它。可以通过Maven或手动下载MySQL JDBC驱动程序来实现。
2.连接MySQL数据库
在Servlet中,可以使用Java中的JDBC技术来连接MySQL数据库。以下是一个示例代码:
```
import java.sql.*;
public class DBUtil {
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
private static final String USERNAME = "root";
private static final String PASSWORD = "root";
public static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName(DRIVER);
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
}
```
在上面的代码中,使用了Java中的JDBC技术来连接MySQL数据库。其中,DRIVER是MySQL JDBC驱动程序的类路径,URL是MySQL数据库的连接字符串,USERNAME和PASSWORD是连接MySQL数据库所需要的用户名和密码。
3.实现增删改查操作
在Servlet中,可以使用Java中的JDBC技术来实现MySQL数据库的增删改查操作。以下是一个示例代码:
```
import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class UserServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if ("add".equals(action)) {
addUser(request, response);
} else if ("delete".equals(action)) {
deleteUser(request, response);
} else if ("update".equals(action)) {
updateUser(request, response);
} else if ("query".equals(action)) {
queryUser(request, response);
}
}
private void addUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("insert into user(username, password) values(?, ?)");
stmt.setString(1, username);
stmt.setString(2, password);
stmt.executeUpdate();
response.sendRedirect(request.getContextPath() + "/index.jsp");
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(stmt, conn);
}
}
private void deleteUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("delete from user where id=?");
stmt.setInt(1, Integer.parseInt(id));
stmt.executeUpdate();
response.sendRedirect(request.getContextPath() + "/index.jsp");
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(stmt, conn);
}
}
private void updateUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String username = request.getParameter("username");
String password = request.getParameter("password");
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("update user set username=?, password=? where id=?");
stmt.setString(1, username);
stmt.setString(2, password);
stmt.setInt(3, Integer.parseInt(id));
stmt.executeUpdate();
response.sendRedirect(request.getContextPath() + "/index.jsp");
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(stmt, conn);
}
}
private void queryUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
stmt = conn.prepareStatement("select * from user");
rs = stmt.executeQuery();
request.setAttribute("users", rs);
request.getRequestDispatcher("/user.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, stmt, conn);
}
}
}
```
在上面的代码中,实现了一个UserServlet,其中包含了addUser、deleteUser、updateUser和queryUser四个方法,分别对应MySQL数据库的增、删、改、查操作。在每个方法中,首先获取请求参数,然后使用Java中的JDBC技术连接MySQL数据库,最后执行相应的SQL语句。如果操作成功,则跳转到相应的页面,否则输出错误信息。
4.使用JSP页面显示数据
在JSP页面中,可以通过EL表达式和JSTL标签来显示MySQL数据库中的数据。以下是一个示例代码:
```
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<table border="1">
<tr>
<th>ID</th>
<th>用户名</th>
<th>密码</th>
</tr>
<c:forEach var="user" items="${users}">
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.password}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
```
在上面的代码中,使用了JSTL标签来遍历MySQL数据库中的数据,并使用EL表达式来显示数据。如果数据为空,则不会显示任何内容。
以上就是使用MySQL JDBC和Servlet、JSP技术实现MySQL数据库的增删改查操作的示例。
阅读全文