从最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate

下面我将详细讲解“从最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate”的完整攻略。

前置要求

在正式进行搭建之前,需要确保你已经安装配置好以下软件:

  • JDK
  • Maven
  • Tomcat
  • IDE(推荐使用IntelliJ IDEA)

步骤一:创建Maven项目

首先,我们需要创建一个Maven项目。在IDE中,找到创建Maven项目的选项,然后填入以下信息:

  • GroupId:com.example
  • ArtifactId:spring-mvc-jpa-example
  • Version:1.0.0

创建完成后,IDE会自动构建出一个基本的Maven项目。

步骤二:导入Spring框架

在pom.xml文件中,添加以下依赖项:

<dependencies>
  <!--Spring-->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.8.RELEASE</version>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.8.RELEASE</version>
  </dependency>
  <!--其他依赖项...-->
</dependencies>

这里我们导入了Spring的两个核心依赖:spring-context和spring-webmvc。

步骤三:导入Spring Data JPA

在pom.xml文件中,添加以下依赖项:

<dependencies>
  <!--Spring Data-->
  <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>2.3.3.RELEASE</version>
  </dependency>
  <!--其他依赖项...-->
</dependencies>

这里我们导入了Spring Data JPA。

步骤四:导入Hibernate

在pom.xml文件中,添加以下依赖项:

<dependencies>
  <!--Hibernate-->
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.20.Final</version>
  </dependency>
  <!--其他依赖项...-->
</dependencies>

这里我们导入了Hibernate。

步骤五:配置数据源

在application.properties文件中,添加以下内容:

#数据源配置
spring.datasource.url=<JDBC_URL>
spring.datasource.username=<USERNAME>
spring.datasource.password=<PASSWORD>
spring.datasource.driver-class-name=<DRIVER_CLASS_NAME>

#Hibernate配置
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.hbm2ddl.auto=update

其中,JDBC_URL、USERNAME、PASSWORD、DRIVER_CLASS_NAME需要根据实际情况进行配置。

步骤六:创建实体类和仓库接口

在src/main/java目录下,创建一个包名为com.example.entity的包。在其中创建一个实体类Person:

@Entity
public class Person {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;

    @Column(nullable = false)
    private Integer age;

    //省略getter和setter方法
}

然后,在同样的包中,创建一个仓库接口PersonRepository:

@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
}

步骤七:创建控制器

在src/main/java目录下,创建一个包名为com.example.controller的包。在其中创建一个控制器HomeController:

@Controller
public class HomeController {
    @Autowired
    private PersonRepository personRepository;

    @GetMapping("/")
    public String index(Model model) {
        List<Person> persons = personRepository.findAll();
        model.addAttribute("persons", persons);
        return "index";
    }
}

这里我们注入了PersonRepository,并在index方法中查询所有Person对象,存入Model中,并返回名为index的视图。

步骤八:创建视图

在src/main/resources/templates目录下,创建一个名为index.html的文件,添加以下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Spring MVC JPA Example</title>
</head>
<body>
    <h1>Person List</h1>
    <ul>
        [[#th:each="person : ${persons}"]]
        <li>[[${person.id}]] - [[${person.name}]] ([[${person.age}]] years old)</li>
        [[/th:each]]
    </ul>
</body>
</html>

这里使用了Thymeleaf模板引擎,展示了查询到的Person对象列表。

步骤九:部署项目并运行

完成以上步骤后,我们可以使用IDE中的内置Tomcat或手动安装Tomcat,将项目打包为war包并部署到Tomcat中,然后访问http://localhost:8080/springmvc-jpa-example/,即可看到查询到的Person对象列表。

示例一:插入一条Person记录

在HomeController中添加以下方法:

@GetMapping("/new")
public String create() {
    Person person = new Person();
    person.setName("张三");
    person.setAge(20);
    personRepository.save(person);
    return "redirect:/";
}

这里我们实例化一个Person对象,并将姓名和年龄设置为“张三”和20,在保存后重定向到首页。访问http://localhost:8080/springmvc-jpa-example/new,即可插入一条新的Person记录。

示例二:删除一条Person记录

在HomeController中添加以下方法:

@GetMapping("/delete/{id}")
public String delete(@PathVariable("id") Long id) {
    personRepository.deleteById(id);
    return "redirect:/";
}

这里我们根据id从数据库中删除Person记录,并重定向到首页。访问http://localhost:8080/springmvc-jpa-example/delete/1,即可删除id为1的Person记录。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:从最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • springboot maven 打包插件介绍及注意事项说明

    Spring Boot Maven打包插件介绍 Spring Boot使用了Maven作为构建工具,通过Maven进行项目的编译、依赖管理和打包部署等操作,其中Maven的打包插件在Spring Boot中有着非常重要的作用。 Maven的打包插件主要用于将项目打成可执行的JAR或WAR包,Spring Boot将其进一步封装为了一些特定的插件,以适应Spr…

    Java 2023年6月2日
    00
  • Java多线程-线程的同步与锁的问题

    Java 多线程 – 线程的同步与锁的问题 Java 中,线程的同步与锁是多线程开发中一个极为重要的概念,也是高并发环境下解决数据同步的关键。线程的同步意味着多个线程之间共享数据时需要做到同步,避免数据错乱。锁是线程同步机制的基础,通过加锁可以使线程按照特定的次序串行执行,从而保证多线程访问共享数据时的安全性。 线程同步 当多个线程不同步访问共享数据时,就可…

    Java 2023年5月26日
    00
  • Spring Boot 启动、停止、重启、状态脚本

    Spring Boot启动、停止、重启、状态脚本的完整攻略 Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自配置、快速开发和易于部署。在本文中,我们将介绍如何编写Spring Boot的启动、停止、重启和状态脚本,并提供两个示例。 示例一:使用systemd编写脚本 systemd是一个Linux系统的初始化系统和服务…

    Java 2023年5月15日
    00
  • Springboot快速入门教程

    下面是关于“Springboot快速入门教程”的完整攻略。 1. 前置条件 在开始学习Springboot之前,需要具备一定的Java基础知识,并熟悉Spring框架的基本概念。 2. 学习步骤 2.1 创建项目 在开始使用Springboot开发项目前,需要先创建一个基础的Springboot项目。在这里以使用Maven创建项目为例: <groupI…

    Java 2023年5月15日
    00
  • java中int初始化可以为0,但不能为NULL问题

    在Java中,int类型的变量可以被初始化为0,但不能被初始化为NULL。这是因为在Java中,int是原始数据类型,而NULL是引用数据类型的特殊值,不适用于原始数据类型的变量。 如果我们试图初始化一个int变量为NULL,将会得到一个编译时错误: int a = NULL; // 编译报错 相反,我们可以将int变量初始化为0: int a = 0; 在…

    Java 2023年5月19日
    00
  • springboot整合redis修改分区的操作流程

    下面是关于“springboot整合redis修改分区的操作流程”的完整攻略: 操作流程 修改redis.conf文件 在redis.conf配置文件中搜索”hash-max-ziplist-entries”和“hash-max-ziplist-value”两个参数。这两个参数决定了Redis使用ziplist存储hash类型的数据结构时,ziplist中的…

    Java 2023年5月20日
    00
  • 详解如何实现SpringBoot的底层注解

    详解如何实现Spring Boot的底层注解 Spring Boot是一个非常流行的Java框架,它提供了许多便利的功能,其中包括底层注解。在本文中,我们将详细讲解如何实现Spring Boot的底层注解,包括如何创建自定义注解、如何使用元注解和如何使用注解处理器。 创建自定义注解 在Java中,我们可以使用@interface关键字来创建自定义注解。以下是…

    Java 2023年5月15日
    00
  • SpringBoot集成WebSocket实现前后端消息互传的方法

    下面是 SpringBoot 集成 WebSocket 实现前后端消息互传的完整攻略。 简介 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得浏览器和服务器之间的实时通信变得更加容易。Spring Boot 提供了一个强大的 WebSocket 模块,可以轻松实现 WebSocket 的集…

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