需求描述:
写一个用户的增删改查的javaweb系统
描述:
在pom.xml下mybatis3.5.5,tomcat7-maven-plugin2.2,javax.servlet-api3.1.0,mysql-connector-java5.1.46;
在src/main/java下创建com.lianxi.pojo包里面是用户实体类Users,包括name(字符串),password(字符串),id(整形)以及set,get函数和toString;创建com.lianxi.mapper包,里面是接口UsersMapper,UsersMapper里写增删改查的sql语句;
创建com.lianxi.servlet包,里面分别创建增删改查的后台代码addServlet,deleteServlet,updateServlet,selectServlet;
在resources下创建com.lianxi.mapper包,里面创建UsersMapper.xml文件;
在resources目录下创建mybatis-config.xml,里面是链接数据库的代码和配置扫描UsersMapper.xml;
最后在webapp下写增删改查的前端代码add.html,delete.html,update.html,select.html;
ai代码:
为了创建一个完整的用户增删改查(CRUD)系统,您可以按照以下步骤来组织和编写代码。我们将使用Java Web与MyBatis来实现这个功能。以下是每个部分的详细代码结构和解释。1. pom.xml
首先是pom.xml,它配置了所需的依赖项。根据需求,您会需要MyBatis、Servlet、Tomcat插件等。xml
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.lianxi</groupId><artifactId>user-crud</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><!-- MyBatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><!-- Servlet API --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- Tomcat Maven Plugin --><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><scope>provided</scope></dependency><!-- MyBatis-Spring --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><executions><execution><goals><goal>run</goal></goals></execution></executions></plugin></plugins></build>
</project>
2. Users 实体类 (POJO)
在 src/main/java/com/lianxi/pojo 下创建一个名为 Users 的类。java
package com.lianxi.pojo;public class Users {private int id;private String name;private String password;// Getters and Setterspublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "Users{id=" + id + ", name='" + name + "', password='" + password + "'}";}
}
3. UsersMapper 接口
在 src/main/java/com/lianxi/mapper 下创建 UsersMapper 接口,定义CRUD操作。java
package com.lianxi.mapper;import com.lianxi.pojo.Users;
import java.util.List;public interface UsersMapper {// 添加用户void addUser(Users user);// 删除用户void deleteUser(int id);// 更新用户void updateUser(Users user);// 查询用户Users getUserById(int id);// 获取所有用户List<Users> getAllUsers();
}
4. UsersMapper.xml 配置文件
在 resources/com/lianxi/mapper 目录下创建 UsersMapper.xml,定义实际的SQL语句。xml
<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.lianxi.mapper.UsersMapper"><insert id="addUser" parameterType="com.lianxi.pojo.Users">INSERT INTO users (name, password) VALUES (#{name}, #{password});</insert><delete id="deleteUser" parameterType="int">DELETE FROM users WHERE id = #{id};</delete><update id="updateUser" parameterType="com.lianxi.pojo.Users">UPDATE users SET name = #{name}, password = #{password} WHERE id = #{id};</update><select id="getUserById" parameterType="int" resultType="com.lianxi.pojo.Users">SELECT * FROM users WHERE id = #{id};</select><select id="getAllUsers" resultType="com.lianxi.pojo.Users">SELECT * FROM users;</select></mapper>
5. mybatis-config.xml
在 resources 目录下创建 mybatis-config.xml,配置MyBatis。xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/your_database_name"/><property name="username" value="your_db_username"/><property name="password" value="your_db_password"/></dataSource></environment><mappers><mapper resource="com/lianxi/mapper/UsersMapper.xml"/></mappers></configuration>
6. Servlet 配置
在 src/main/java/com/lianxi/servlet 下创建Servlet,用于处理前端请求。addServlet.java
java
package com.lianxi.servlet;import com.lianxi.pojo.Users;
import com.lianxi.mapper.UsersMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/addUser")
public class AddServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String name = request.getParameter("name");String password = request.getParameter("password");Users user = new Users();user.setName(name);user.setPassword(password);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(getServletContext().getResourceAsStream("/WEB-INF/mybatis-config.xml"));try (SqlSession session = sqlSessionFactory.openSession()) {UsersMapper mapper = session.getMapper(UsersMapper.class);mapper.addUser(user);session.commit();}response.sendRedirect("select.html");}
}
deleteServlet.java
java
package com.lianxi.servlet;import com.lianxi.mapper.UsersMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/deleteUser")
public class DeleteServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int id = Integer.parseInt(request.getParameter("id"));SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(getServletContext().getResourceAsStream("/WEB-INF/mybatis-config.xml"));try (SqlSession session = sqlSessionFactory.openSession()) {UsersMapper mapper = session.getMapper(UsersMapper.class);mapper.deleteUser(id);session.commit();}response.sendRedirect("select.html");}
}
updateServlet.java
java
package com.lianxi.servlet;import com.lianxi.pojo.Users;
import com.lianxi.mapper.UsersMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/updateUser")
public class UpdateServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int id = Integer.parseInt(request.getParameter("id"));String name = request.getParameter("name");String password = request.getParameter("password");Users user = new Users();user.setId(id);user.setName(name);user.setPassword(password);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(getServletContext().getResourceAsStream("/WEB-INF/mybatis-config.xml"));try (SqlSession session = sqlSessionFactory.openSession()) {UsersMapper mapper = session.getMapper(UsersMapper.class);mapper.updateUser(user);session.commit();}response.sendRedirect("select.html");}
}
selectServlet.java
java
package com.lianxi.servlet;import com.lianxi.mapper.UsersMapper;
import com.lianxi.pojo.Users;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;@WebServlet("/selectUser")
public class SelectServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(getServletContext().getResourceAsStream("/WEB-INF/mybatis-config.xml"));try (SqlSession session = sqlSessionFactory.openSession()) {UsersMapper mapper = session.getMapper(UsersMapper.class);List<Users> usersList = mapper.getAllUsers();request.setAttribute("usersList", usersList);request.getRequestDispatcher("select.jsp").forward(request, response);}}
}
7. 前端页面
在 webapp 目录下,创建前端HTML页面,使用表单与Servlet进行交互。add.html
html
<!DOCTYPE html>
<html>
<head><title>Add User</title>
</head>
<body><h2>Add User</h2><form action="addUser" method="post">Name: <input type="text" name="name" required><br>Password: <input type="password" name="password" required><br><input type="submit" value="Add User"></form>
</body>
</html>
delete.html
html
<!DOCTYPE html>
<html>
<head><title>Delete User</title>
</head>
<body><h2>Delete User</h2><form action="deleteUser" method="post">User ID: <input type="text" name="id" required><br><input type="submit" value="Delete User"></form>
</body>
</html>
update.html
html
<!DOCTYPE html>
<html>
<head><title>Update User</title>
</head>
<body><h2>Update User</h2><form action="updateUser" method="post">User ID: <input type="text" name="id" required><br>Name: <input type="text" name="name" required><br>Password: <input type="password" name="password" required><br><input type="submit" value="Update User"></form>
</body>
</html>
select.html
html
<!DOCTYPE html>
<html>
<head><title>Users List</title>
</head>
<body><h2>All Users</h2><table border="1"><tr><th>ID</th><th>Name</th><th>Password</th></tr><!-- Use JSP to iterate through users --><%@ page import="java.util.List" %><%@ page import="com.lianxi.pojo.Users" %><%List<Users> usersList = (List<Users>) request.getAttribute("usersList");for (Users user : usersList) {%><tr><td><%= user.getId() %></td><td><%= user.getName() %></td><td><%= user.getPassword() %></td></tr><%}%></table>
</body>
</html>
8. 配置 web.xml
为了让Servlet工作,确保在web.xml中配置相关映射。<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><servlet><servlet-name>addServlet</servlet-name><servlet-class>com.lianxi.servlet.AddServlet</servlet-class></servlet><servlet-mapping><servlet-name>addServlet</servlet-name><url-pattern>/addUser</url-pattern></servlet-mapping><servlet><servlet-name>deleteServlet</servlet-name><servlet-class>com.lianxi.servlet.DeleteServlet</servlet-class></servlet><servlet-mapping><servlet-name>deleteServlet</servlet-name><url-pattern>/deleteUser</url-pattern></servlet-mapping><servlet><servlet-name>updateServlet</servlet-name><servlet-class>com.lianxi.servlet.UpdateServlet</servlet-class></servlet><servlet-mapping><servlet-name>updateServlet</servlet-name><url-pattern>/updateUser</url-pattern></servlet-mapping><servlet><servlet-name>selectServlet</servlet-name><servlet-class>com.lianxi.servlet.SelectServlet</servlet-class></servlet><servlet-mapping><servlet-name>selectServlet</servlet-name><url-pattern>/selectUser</url-pattern></servlet-mapping>
</web-app>