JAVA中SSM框架的搭建实现CRUD的方法

JAVA中SSM框架的搭建实现CRUD操作可以分为以下几个步骤:

1. 搭建环境

首先,我们需要安装必要的软件和工具:

  • JDK
  • Maven
  • Eclipse或IntelliJ IDEA
  • Tomcat
  • MySQL

并配置环境变量和路径。安装完成后,在Eclipse或IntelliJ IDEA中创建一个新的Maven项目。

2. 添加依赖

在pom.xml文件中,添加Spring、Spring MVC和MyBatis的依赖:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

其中${spring.version}是Spring的版本号,可以根据需要修改。

3. 配置数据源

在src/main/resources目录下创建一个名为application.properties的文件,配置数据源:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

4. 配置MyBatis

在src/main/resources目录下创建一个名为mybatis-config.xml的文件,配置MyBatis:

<configuration>
    <typeAliases>
        <package name="com.example.demo.entity"/>
    </typeAliases>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

其中com.example.demo.entity是实体类所在的包名,mapper/UserMapper.xml是MyBatis映射文件的路径。

5. 编写实体类和Mapper接口

在com.example.demo.entity包中创建一个名为User的类,用于表示数据库中的一条记录:

public class User {
    private Long id;
    private String username;
    private String password;
    // 省略getter和setter方法
}

在com.example.demo.mapper包中创建一个名为UserMapper的接口,定义CRUD操作:

public interface UserMapper {
    List<User> findAll();
    User findById(Long id);
    void save(User user);
    void update(User user);
    void delete(Long id);
}

6. 编写Mapper映射文件

在src/main/resources/mapper目录下创建一个名为UserMapper.xml的文件,定义SQL语句:

<mapper namespace="com.example.demo.mapper.UserMapper">
    <resultMap id="UserResultMap" type="User">
        <id property="id" column="id"/>
        <result property="username" column="username"/>
        <result property="password" column="password"/>
    </resultMap>
    <select id="findAll" resultMap="UserResultMap">
        select * from user
    </select>
    <select id="findById" parameterType="Long" resultMap="UserResultMap">
        select * from user where id = #{id}
    </select>
    <insert id="save" parameterType="User">
        insert into user(username, password) values(#{username}, #{password})
    </insert>
    <update id="update" parameterType="User">
        update user set username = #{username}, password = #{password} where id = #{id}
    </update>
    <delete id="delete" parameterType="Long">
        delete from user where id = #{id}
    </delete>
</mapper>

7. 编写Controller和View

在com.example.demo.controller包中创建一个名为UserController的类,用于处理用户请求:

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserMapper userMapper;
    @GetMapping("/list")
    public String list(Model model) {
        List<User> userList = userMapper.findAll();
        model.addAttribute("userList", userList);
        return "userList";
    }
}

在src/main/resources/templates目录下创建一个名为userList.html的文件,用于展示用户列表:

<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Username</th>
            <th>Password</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        <tr th:each="user : ${userList}">
            <td th:text="${user.id}"></td>
            <td th:text="${user.username}"></td>
            <td th:text="${user.password}"></td>
            <td>
                <a th:href="@{'/user/edit?id=' + ${user.id}}">编辑</a>
                <a th:href="@{'/user/delete?id=' + ${user.id}}">删除</a>
            </td>
        </tr>
    </tbody>
</table>

示例1:查询用户

在UserController中添加一个getUser方法,用于查询用户:

@GetMapping("/get")
@ResponseBody
public User getUser(Long id) {
    return userMapper.findById(id);
}

在userList.html中添加一个查询按钮,使用Ajax向服务器发送GET请求,并将查询结果显示在网页上:

<script type="text/javascript">
    function getUser() {
        var id = $("#id").val();
        $.get("/user/get", {id: id}, function(data) {
            $("#username").val(data.username);
            $("#password").val(data.password);
        });
    }
</script>
<input type="text" id="id"/>
<button onclick="getUser()">查询</button>
<input type="text" id="username"/>
<input type="text" id="password"/>

示例2:添加用户

在UserController中添加一个addUser方法,用于添加用户:

@PostMapping("/add")
@ResponseBody
public String addUser(User user) {
    try {
        userMapper.save(user);
        return "success";
    } catch(Exception e) {
        return "error";
    }
}

在userList.html中添加一个添加按钮,使用Ajax向服务器发送POST请求,并将执行结果显示在网页上:

<script type="text/javascript">
    function addUser() {
        var username = $("#username").val();
        var password = $("#password").val();
        $.post("/user/add", {username: username, password: password}, function(data) {
            if(data == "success") {
                alert("添加成功!");
            } else {
                alert("添加失败!");
            }
        });
    }
</script>
<input type="text" id="username"/>
<input type="text" id="password"/>
<button onclick="addUser()">添加</button>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA中SSM框架的搭建实现CRUD的方法 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • jQuery通过控制节点实现仅在前台通过get方法完成参数传递

    下面就是jQuery通过控制节点实现仅在前台通过get方法完成参数传递的攻略。 什么是jQuery通过控制节点实现仅在前台通过get方法完成参数传递 在前端页面中,我们有时需要把数据传递到后端处理,而jQuery通过控制节点实现仅在前台通过get方法完成参数传递就是一种实现这一需求的方法。 简单来说,就是通过控制页面上的节点元素来获取数据,并将数据通过get…

    Java 2023年6月15日
    00
  • Java编码摘要算法实例解析

    Java编码摘要算法实例解析 在Java编程语言中,提供了一种编码摘要算法,可以将一段文本或文件转换成一段固定长度的唯一代码,称作“哈希值”或“数字指纹”。这个算法被广泛应用于身份认证、数字签名、数据完整性验证等场景中。 哈希算法概述 哈希算法将任意长度的二进制文本信息转换成固定长度的数字(通常是32、64、128或256位等长度),这个数字就是哈希值,也称…

    Java 2023年5月20日
    00
  • SpringMVC中使用@PathVariable绑定路由中的数组的方法

    SpringMVC中使用@PathVariable绑定路由中的数组的方法 在SpringMVC中,我们可以使用@PathVariable注解将路由中的参数绑定到方法的参数上。如果路由中的参数是一个数组,我们可以使用@PathVariable注解来绑定它。本文将详细讲解SpringMVC中使用@PathVariable绑定路由中的数组的方法。 1. 绑定路由中…

    Java 2023年5月18日
    00
  • mybatis plus实体类中字段映射mysql中的json格式方式

    下面是关于如何使用MybatisPlus实体类中字段映射MySQL中JSON格式的完整攻略。 1. 引入依赖 在pom.xml中加入以下依赖: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter&l…

    Java 2023年5月26日
    00
  • 如何检查线程状态?

    以下是关于如何检查线程状态的完整使用攻略: 如何检查线程状态? 在 Java 中,可以使用 Thread 类的 getState() 方法来获取线程的状态。该方法返回一个 Thread.State 枚举类型的值,表示线程的状态。 示例一:使用 getState() 方法获取线程状态。可以使用以下代码实现: public class MyThread exte…

    Java 2023年5月12日
    00
  • 一文掌握SpringSecurity BCrypt密码加密和解密

    一文掌握SpringSecurity BCrypt密码加密和解密 什么是SpringSecurity BCrypt密码加密 SpringSecurity BCrypt密码加密是一种基于BCrypt算法的加密方式。BCrypt算法是一种单向加密算法,它可以用于密码的加密和解密,但解密过程需要很长的时间,通常需要数十年或者更长的时间才能破解。因此,BCrypt算…

    Java 2023年5月20日
    00
  • Spring Security OAuth 个性化token的使用

    下面我来详细讲解“Spring Security OAuth 个性化token的使用”。 什么是Spring Security OAuth Spring Security OAuth 是 Spring Security 的子项目,它是一个支持多种 OAuth2 协议的授权框架。它提供了一些 API 和注解,方便我们进行 OAuth2 认证和授权的开发。 个性…

    Java 2023年5月20日
    00
  • struts2入门介绍及代码实例

    Struts2 入门介绍及代码实例 什么是 Struts2? ​Struts2 是一个基于 Java 网络应用框架,使用 MVC 设计模式,将应用程序分成模型、视图和控制器(model-view-controller,MVC)三部分,它由 Apache 软件基金会主导开发,是 Struts1 的升级版, 通过 Struts2 可以极大地简化 Web 应用的开…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部