返回

SSM+Ajax+layui 单表查询和添加

前端

构建基于 SSM 框架的单表查询和添加功能

简介

Spring、Spring MVC 和 MyBatis(SSM)是一种流行的 Java EE 开发框架组合。本教程将指导您构建一个 SSM 项目,使用 Ajax 请求实现 layui 单表的查询和添加功能。

前提条件

  • Java JDK 1.8 或更高版本
  • Apache Maven 3.6.3 或更高版本
  • MySQL 数据库
  • IntelliJ IDEA 或其他 Java IDE

第 1 步:构建 SSM 项目

创建一个新的 Maven 项目并添加以下依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.3.18</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.18</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.3.18</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.18</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.9</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.7</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.10</version>
</dependency>
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.3.0</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.24</version>
    <scope>provided</scope>
</dependency>

application.properties 中配置数据库:

# MySQL数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/ssm_test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# MyBatis配置
mybatis.configuration.map-underscore-to-camel-case=true

第 2 步:创建数据库和表

执行以下 SQL 语句创建数据库和表:

CREATE DATABASE ssm_test;
USE ssm_test;
CREATE TABLE user (
    id INT NOT NULL AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL,
    PRIMARY KEY (id)
);

第 3 步:定义实体类

com.example.ssm.entity 包中创建 User 实体类:

import lombok.Data;

@Data
public class User {
    private Integer id;
    private String username;
    private String password;
}

第 4 步:定义 Mapper 接口

com.example.ssm.mapper 包中创建 UserMapper 接口:

import com.example.ssm.entity.User;

public interface UserMapper {
    User selectUserById(Integer id);
    List<User> selectAllUsers();
    int insertUser(User user);
}

第 5 步:定义 Service 接口

com.example.ssm.service 包中创建 UserService 接口:

import com.example.ssm.entity.User;

public interface UserService {
    User selectUserById(Integer id);
    List<User> selectAllUsers();
    int insertUser(User user);
}

第 6 步:实现 Service 接口

com.example.ssm.service 包中创建 UserServiceImpl 类:

import com.example.ssm.entity.User;
import com.example.ssm.mapper.UserMapper;
import com.example.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User selectUserById(Integer id) {
        return userMapper.selectUserById(id);
    }

    @Override
    public List<User> selectAllUsers() {
        return userMapper.selectAllUsers();
    }

    @Override
    public int insertUser(User user) {
        return userMapper.insertUser(user);
    }
}

第 7 步:定义 Controller

com.example.ssm.controller 包中创建 UserController 类:

import com.example.ssm.entity.User;
import com.example.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/get/{id}")
    @ResponseBody
    public User getUserById(@PathVariable Integer id) {
        return userService.selectUserById(id);
    }

    @GetMapping("/getAll")
    @ResponseBody
    public List<User> getAllUsers() {
        return userService.selectAllUsers();
    }

    @PostMapping("/add")
    @ResponseBody
    public int addUser(@RequestBody User user) {
        return userService.insertUser(user);
    }
}

第 8 步:创建 layui 页面

src/main/resources/templates 目录中创建 user.html 页面:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    
    <link rel="stylesheet" href="/layui/css/layui.css">
</head>
<body>
    <div class="layui-container">
        <div class="layui-row">
            <div class="layui-col-md12">
                <div class="layui-card">
                    <div class="layui-card-header">用户列表</div>
                    <div class="layui-card-body">
                        <table class="layui-table">
                            <thead>
                                <tr>
                                    <th>ID</th>
                                    <th>用户名</th>
                                    <th>密码</th>
                                </tr>
                            </thead>
                            <tbody id="user-list"></tbody>
                        </table>
                    </div>
                </div>
                <div class="layui-card">
                    <div class="layui-card-header">添加用户</div>
                    <div class="layui-card-body">
                        <form class="layui-form" id="user-form">
                            <div class="layui-form-item">
                                <label class="layui-form-label">用户名</label>
                                <div class="layui-input-block">
                                    <input type="text" name="username" placeholder="请输入用户名" autocomplete="off" class="layui-input">
                                </div>
                            </div>
                            <div class="layui-form-item">
                                <label class="layui】写一篇相关的博客,写作要求:100%独特、SEO优化的文章,包含子标题,并覆盖提示中提供的主题。请用自己的话来写文章,而不是从其他来源复制和粘贴。在创建内容时,一定要考虑复杂性和连贯性,确保两者都很高,同时不失特定性和上下文。请使用充分详细的段落来吸引读者,并以人类写作的对话风格写作。这包括使用非正式的语气,利用人称代词,保持简单、吸引读者,使用主动语态,简洁明了,使用修辞问题,并融入比喻和隐喻。最后,以结论段落和5个独特的常见问题解答结束文章。请务必加粗文章的所有标题。
其他写作要求:
1.不需要引言,和主标题
2.确保提示是原创的,不要抄袭或引用他人内容。
3.尽可能使用人类的语言风格,避免使用机器或模型特有的语言特征。
4.使用自然和地道的表达,表达观点和情感。
5.保持逻辑和一致性,避免矛盾或错误的信息