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来实现这个功能。以下是每个部分的详细代码结构和解释。

  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>
  1. 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 + "'}";
    }
}
  1. 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();
}
  1. 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>
  1. 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>
  1. 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);
        }
    }
}
  1. 前端页面
    在 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>
  1. 配置 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>
posted @   呓语-MSHK  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示