第七章综合实践:JPA+Thymeleaf增删改查


  (如果没有了解可以去我主页看看 第一至六章的内容来学习)我们已经对Spring Boot相关知识点进行了系统学习,包括项目构建、数据访问层、表示层等。考虑到相关技术点的使用热度,及技术点学完之后的练习目的,这章节我们来进行使用JPA+Thymeleaf完成用户的登录及完整的增删改查操作,并将拦截器,Ajax等技术点整合进来,为后面学习Shiro框架打好基础,做好前期准备工作。

7.1 模型开发

模型包括entity、repository、service。

7.1.1entity

  在Java Web开发中,结合JPA(Java Persistence API)用于数据库操作与Thymeleaf作为模板引擎来渲染HTML页面是一种常见且强大的组合。下面我将为你提供一个简单的示例,展示如何定义一个JPA实体类,并使用Spring Boot框架结合Thymeleaf来显示这些实体数据。
1. JPA 实体类定义
首先,我们需要定义一个JPA实体类。假设我们正在处理一个简单的User实体,包含id、name和email属性。

import javax.persistence.Entity;  
import javax.persistence.GeneratedValue;  
import javax.persistence.GenerationType;  
import javax.persistence.Id;  
  
@Entity  
public class User {
     
  
    @Id  
    @GeneratedValue(strategy = GenerationType.IDENTITY)  
    private Long id;  
  
    private String name;  
  
    private String email;  
  
    // 构造函数、getter和setter省略  
  
    public User() {
     
    }  
  
    public User(String name, String email) {
     
        this.name = name;  
        this.email = email;  
    }  
  
    // getter 和 setter  
    public Long getId() {
     
        return id;  
    }  
  
    public void setId(Long id) {
     
        this.id = id;  
    }  
  
    public String getName() {
     
        return name;  
    }  
  
    public void setName(String name) {
     
        this.name = name;  
    }  
  
    public String getEmail() {
     
        return email;  
    }  
  
    public void setEmail(String email) {
     
        this.email = email;  
    }  
}

2. Repository 接口
在Spring Data JPA中,你可以通过定义一个继承自JpaRepository或CrudRepository的接口来自动实现CRUD操作。

import org.springframework.data.jpa.repository.JpaRepository;  
  
public interface UserRepository extends JpaRepository<User, Long> {
     
}

3. Controller 类
然后,我们需要一个Controller来处理HTTP请求,并使用Thymeleaf来渲染页面。

import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Controller;  
import org.springframework.ui.Model;  
import org.springframework.web.bind.annotation.GetMapping;  
  
import java.util.List;  
  
@Controller  
public class UserController {
     
  
    @Autowired  
    private UserRepository userRepository;  
  
    @GetMapping("/")  
    public String index(Model model) {
     
        List<User> users = userRepository.findAll();  
        model.addAttribute("users", users);  
        return "users"; // 返回的Thymeleaf模板名  
    }  
}

4. Thymeleaf 模板
最后,你需要一个Thymeleaf模板来显示用户数据。在src/main/resources/templates目录下创建一个名为users.html的文件。

<!DOCTYPE html>  
<html xmlns:th="http://www.thymeleaf.org">  
<head>  
    <title>Users</title>  
</head>  
<body>  
    <h1>Users</h1>  
    <ul>  
        <li th:each="user : ${users}">  
            <span th:text="${user.name}">Name</span> -   
            <span th:text
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值