javaweb增删改查
时间: 2023-07-07 11:07:57 浏览: 47
JavaWeb 中的增删改查通常是指对数据库中的数据进行操作。下面是一个简单的示例:
1. 增加数据
```java
public class AddDataServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取表单数据
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
// 将数据插入数据库
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
String sql = "insert into student(name, age, gender) values(?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setInt(2, age);
pstmt.setString(3, gender);
pstmt.executeUpdate();
// 返回成功信息
response.getWriter().write("添加成功!");
} catch (Exception e) {
e.printStackTrace();
response.getWriter().write("添加失败!");
} finally {
try {
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
2. 查询数据
```java
public class QueryDataServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 查询数据库中的数据
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
String sql = "select * from student";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
// 将查询结果转换成 JSON 格式并返回
JSONArray jsonArray = new JSONArray();
while (rs.next()) {
JSONObject obj = new JSONObject();
obj.put("id", rs.getInt("id"));
obj.put("name", rs.getString("name"));
obj.put("age", rs.getInt("age"));
obj.put("gender", rs.getString("gender"));
jsonArray.add(obj);
}
response.getWriter().write(jsonArray.toJSONString());
} catch (Exception e) {
e.printStackTrace();
response.getWriter().write("查询失败!");
} finally {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
3. 修改数据
```java
public class UpdateDataServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取表单数据
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
// 更新数据库中的数据
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
String sql = "update student set name=?, age=?, gender=? where id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setInt(2, age);
pstmt.setString(3, gender);
pstmt.setInt(4, id);
pstmt.executeUpdate();
// 返回成功信息
response.getWriter().write("更新成功!");
} catch (Exception e) {
e.printStackTrace();
response.getWriter().write("更新失败!");
} finally {
try {
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
4. 删除数据
```java
public class DeleteDataServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取表单数据
int id = Integer.parseInt(request.getParameter("id"));
// 删除数据库中的数据
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
String sql = "delete from student where id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
// 返回成功信息
response.getWriter().write("删除成功!");
} catch (Exception e) {
e.printStackTrace();
response.getWriter().write("删除失败!");
} finally {
try {
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
这些 Servlet 可以通过前端页面的表单进行操作,例如:
```html
<form action="AddDataServlet" method="post">
<input type="text" name="name" placeholder="姓名">
<input type="number" name="age" placeholder="年龄">
<input type="radio" name="gender" value="男">男
<input type="radio" name="gender" value="女">女
<input type="submit" value="添加">
</form>
<table>
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>操作</th>
</tr>
</thead>
<tbody id="data">
</tbody>
</table>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$(document).ready(function() {
// 查询数据
$.get("QueryDataServlet", function(data) {
var jsonArray = JSON.parse(data);
for (var i = 0; i < jsonArray.length; i++) {
var obj = jsonArray[i];
$("#data").append("<tr><td>" + obj.id + "</td><td>" + obj.name + "</td><td>" + obj.age + "</td><td>" + obj.gender + "</td><td><button onclick='updateData(" + obj.id + ")'>修改</button><button onclick='deleteData(" + obj.id + ")'>删除</button></td></tr>");
}
});
// 添加数据
$("form").submit(function(event) {
event.preventDefault();
var form = $(this);
$.post(form.attr("action"), form.serialize(), function(response) {
alert(response);
location.reload();
});
});
});
// 修改数据
function updateData(id) {
var name = prompt("请输入姓名:");
var age = prompt("请输入年龄:");
var gender = prompt("请输入性别(男/女):");
$.post("UpdateDataServlet", {id: id, name: name, age: age, gender: gender}, function(response) {
alert(response);
location.reload();
});
}
// 删除数据
function deleteData(id) {
if (confirm("确定要删除吗?")) {
$.post("DeleteDataServlet", {id: id}, function(response) {
alert(response);
location.reload();
});
}
}
</script>
```