javaweb实现增删改查
时间: 2023-09-01 11:13:24 浏览: 58
JavaWeb实现增删改查(CRUD)通常使用MVC框架,例如Spring MVC、Struts2等。这里以Spring MVC为例,介绍实现步骤:
1. 定义实体类和DAO层接口
首先需要定义实体类和DAO层接口,实体类通常对应数据库表中的一条记录,而DAO层接口负责与数据库进行交互,包括增删改查等操作。
2. 编写DAO层实现类
编写DAO层实现类,实现DAO层接口中定义的方法,具体操作包括增删改查等。
3. 编写Service层接口和实现类
编写Service层接口和实现类,Service层负责调用DAO层进行数据库操作,并且可以在此基础上进行业务逻辑处理。
4. 编写Controller层
编写Controller层,负责接收用户请求并调用Service层中的方法进行处理,然后返回结果给用户。
5. 编写视图层
编写视图层,通常使用JSP或者Thymeleaf等模板引擎,将Controller层返回的数据渲染到页面上。
以上就是JavaWeb实现增删改查的基本步骤,具体实现还需要根据具体业务场景进行调整。
相关问题
JavaWeb实现增删改查
JavaWeb实现增删改查一般需要以下步骤:
1. 编写数据库表结构
2. 编写JavaBean类,对应数据库表结构
3. 编写DAO层,实现增删改查操作
4. 编写Service层,调用DAO层实现业务逻辑
5. 编写Controller层,接收请求,调用Service层处理请求,返回响应
下面是一个简单的示例:
1. 编写数据库表结构
```
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
2. 编写JavaBean类
```
public class User {
private int id;
private String name;
private int age;
private String gender;
// 省略getter和setter方法
}
```
3. 编写DAO层
```
public class UserDao {
private Connection conn;
public UserDao(Connection conn) {
this.conn = conn;
}
public void add(User user) {
PreparedStatement pstmt = null;
try {
String sql = "INSERT INTO user(name, age, gender) VALUES (?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getName());
pstmt.setInt(2, user.getAge());
pstmt.setString(3, user.getGender());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
}
}
public void delete(int id) {
PreparedStatement pstmt = null;
try {
String sql = "DELETE FROM user WHERE id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
}
}
public void update(User user) {
PreparedStatement pstmt = null;
try {
String sql = "UPDATE user SET name=?, age=?, gender=? WHERE id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getName());
pstmt.setInt(2, user.getAge());
pstmt.setString(3, user.getGender());
pstmt.setInt(4, user.getId());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
}
}
public User getById(int id) {
PreparedStatement pstmt = null;
ResultSet rs = null;
User user = null;
try {
String sql = "SELECT * FROM user WHERE id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
rs = pstmt.executeQuery();
if (rs.next()) {
user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
user.setGender(rs.getString("gender"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
}
return user;
}
public List<User> getAll() {
PreparedStatement pstmt = null;
ResultSet rs = null;
List<User> userList = new ArrayList<>();
try {
String sql = "SELECT * FROM user";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
user.setGender(rs.getString("gender"));
userList.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
}
return userList;
}
}
```
4. 编写Service层
```
public class UserService {
private UserDao userDao;
public UserService(UserDao userDao) {
this.userDao = userDao;
}
public void add(User user) {
userDao.add(user);
}
public void delete(int id) {
userDao.delete(id);
}
public void update(User user) {
userDao.update(user);
}
public User getById(int id) {
return userDao.getById(id);
}
public List<User> getAll() {
return userDao.getAll();
}
}
```
5. 编写Controller层
```
public class UserController {
private UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
public void add(HttpServletRequest request, HttpServletResponse response) {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
User user = new User();
user.setName(name);
user.setAge(age);
user.setGender(gender);
userService.add(user);
// 返回响应
}
public void delete(HttpServletRequest request, HttpServletResponse response) {
int id = Integer.parseInt(request.getParameter("id"));
userService.delete(id);
// 返回响应
}
public void update(HttpServletRequest request, HttpServletResponse response) {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
User user = new User();
user.setId(id);
user.setName(name);
user.setAge(age);
user.setGender(gender);
userService.update(user);
// 返回响应
}
public void getById(HttpServletRequest request, HttpServletResponse response) {
int id = Integer.parseInt(request.getParameter("id"));
User user = userService.getById(id);
// 返回响应
}
public void getAll(HttpServletRequest request, HttpServletResponse response) {
List<User> userList = userService.getAll();
// 返回响应
}
}
```
Javaweb实现增删改查
Javaweb 实现增删改查是 Web 开发中非常基础的操作,通常使用的是 Java Servlet 和 JSP 技术。
以下是一个简单的示例,实现了一个学生信息管理系统的增删改查功能:
1. 创建数据库表
首先,我们需要在数据库中创建一个表来存储学生信息。例如,我们可以创建一个名为 `student` 的表,包含以下字段:
```
id int 学生编号
name varchar 学生姓名
gender varchar 学生性别
age int 学生年龄
```
2. 创建 JavaBean
为了方便操作学生信息,我们可以创建一个 JavaBean 来表示学生对象:
```java
public class Student {
private int id;
private String name;
private String gender;
private int age;
// 省略 getter 和 setter 方法
}
```
3. 创建 DAO 类
DAO(Data Access Object)是数据访问对象,用于封装对数据库的访问操作。我们可以创建一个 `StudentDAO` 类来实现对学生信息的增删改查操作。
```java
public class StudentDAO {
// 数据库连接参数
private String url = "jdbc:mysql://localhost:3306/test";
private String username = "root";
private String password = "123456";
// 增加学生信息
public void add(Student student) {
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// SQL 语句
String sql = "INSERT INTO student(id, name, gender, age) VALUES (?, ?, ?, ?)";
// 预编译 SQL 语句
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, student.getId());
pstmt.setString(2, student.getName());
pstmt.setString(3, student.getGender());
pstmt.setInt(4, student.getAge());
// 执行 SQL 语句
pstmt.executeUpdate();
// 关闭连接
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 删除学生信息
public void delete(int id) {
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// SQL 语句
String sql = "DELETE FROM student WHERE id = ?";
// 预编译 SQL 语句
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, id);
// 执行 SQL 语句
pstmt.executeUpdate();
// 关闭连接
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 修改学生信息
public void update(Student student) {
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// SQL 语句
String sql = "UPDATE student SET name = ?, gender = ?, age = ? WHERE id = ?";
// 预编译 SQL 语句
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getGender());
pstmt.setInt(3, student.getAge());
pstmt.setInt(4, student.getId());
// 执行 SQL 语句
pstmt.executeUpdate();
// 关闭连接
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 查询学生信息
public List<Student> query() {
List<Student> list = new ArrayList<>();
try {
// 连接数据库
Connection conn = DriverManager.getConnection(url, username, password);
// SQL 语句
String sql = "SELECT * FROM student";
// 创建 Statement 对象
Statement stmt = conn.createStatement();
// 执行 SQL 语句
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setGender(rs.getString("gender"));
student.setAge(rs.getInt("age"));
list.add(student);
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
```
4. 创建 Servlet 类
Servlet 类是 Web 应用程序的控制器,用于接收和处理 HTTP 请求。我们可以创建一个 `StudentServlet` 类来实现学生信息的增删改查功能。
```java
@WebServlet("/student")
public class StudentServlet extends HttpServlet {
private StudentDAO dao = new StudentDAO();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String action = req.getParameter("action");
if ("add".equals(action)) {
add(req, resp);
} else if ("delete".equals(action)) {
delete(req, resp);
} else if ("update".equals(action)) {
update(req, resp);
} else {
query(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
// 增加学生信息
private void add(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.parseInt(req.getParameter("id"));
String name = req.getParameter("name");
String gender = req.getParameter("gender");
int age = Integer.parseInt(req.getParameter("age"));
Student student = new Student();
student.setId(id);
student.setName(name);
student.setGender(gender);
student.setAge(age);
dao.add(student);
resp.sendRedirect("student");
}
// 删除学生信息
private void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.parseInt(req.getParameter("id"));
dao.delete(id);
resp.sendRedirect("student");
}
// 修改学生信息
private void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.parseInt(req.getParameter("id"));
String name = req.getParameter("name");
String gender = req.getParameter("gender");
int age = Integer.parseInt(req.getParameter("age"));
Student student = new Student();
student.setId(id);
student.setName(name);
student.setGender(gender);
student.setAge(age);
dao.update(student);
resp.sendRedirect("student");
}
// 查询学生信息
private void query(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Student> list = dao.query();
req.setAttribute("list", list);
req.getRequestDispatcher("student.jsp").forward(req, resp);
}
}
```
5. 创建 JSP 页面
JSP(JavaServer Pages)页面用于呈现 HTML 页面,并与 Servlet 进行交互。我们可以创建一个 `student.jsp` 页面来显示学生信息列表,并提供添加、删除和修改学生信息的表单。
```html
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生信息管理系统</title>
</head>
<body>
<h1>学生信息列表</h1>
<table border="1">
<thead>
<tr>
<th>学生编号</th>
<th>学生姓名</th>
<th>学生性别</th>
<th>学生年龄</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.gender}</td>
<td>${student.age}</td>
<td>
<a href="student?action=delete&id=${student.id}">删除</a>
<a href="update.jsp?id=${student.id}&name=${student.name}&gender=${student.gender}&age=${student.age}">修改</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<hr>
<h1>添加学生信息</h1>
<form action="student?action=add" method="post">
<table>
<tr>
<td>学生编号:</td>
<td><input type="text" name="id" required></td>
</tr>
<tr>
<td>学生姓名:</td>
<td><input type="text" name="name" required></td>
</tr>
<tr>
<td>学生性别:</td>
<td>
<input type="radio" name="gender" value="男" required>男
<input type="radio" name="gender" value="女" required>女
</td>
</tr>
<tr>
<td>学生年龄:</td>
<td><input type="text" name="age" required></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="添加"></td>
</tr>
</table>
</form>
</body>
</html>
```
6. 部署项目
最后,我们需要将项目部署到 Web 服务器中。可以使用 Tomcat 或者 Jetty 等 Web 服务器来运行项目。
部署完成后,在浏览器中访问 `http://localhost:8080/项目名/student` 即可打开学生信息管理系统,并进行增删改查操作。