2025.3.4 使用ai有效写代码
需求描述:
写一个用户的增删改查的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来实现这个功能。以下是每个部分的详细代码结构和解释。
- 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>
- 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 Setters
public 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;
}
@Override
public String toString() {
return "Users{id=" + id + ", name='" + name + "', password='" + password + "'}";
}
}
- 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();
}
- 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>
- 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>
- 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);
}
}
}
- 前端页面
在 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>
- 配置 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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义