从最基本的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日

相关文章

  • java实现的各种排序算法代码示例

    “Java实现的各种排序算法代码示例”这个话题,是介绍Java中常用的各种排序算法的实现方式。在这篇攻略中,将会依次介绍常用排序算法的实现思路,结合Java语言的特点,详细讲解每种算法的代码实现。 什么是排序算法 排序算法是计算机科学中的一种重要算法,它指的是将一组序列按照顺序重新排列的过程。对于程序员来说,熟练掌握各种排序算法,不仅可以提高代码的执行效率,…

    Java 2023年5月18日
    00
  • Java+MySQL实现学生信息管理系统源码

    Java+MySQL实现学生信息管理系统 本文将介绍如何使用Java和MySQL数据库实现一个简单的学生信息管理系统,并提供完整的源码和演示。 准备工作 为了使用Java和MySQL实现学生信息管理系统,需要先进行以下准备工作: 安装Java开发环境(JDK) 安装MySQL数据库 安装Java连接MySQL的驱动程序(JDBC驱动) 在这里以Windows…

    Java 2023年5月19日
    00
  • maven中下载jar包源码和javadoc的命令介绍

    下面我详细讲解一下 “maven中下载jar包源码和javadoc的命令介绍” 的完整攻略。 1. maven中下载jar包源码和javadoc的意义 在java开发中,使用第三方库是非常常见的事情。而有时候我们需要查看第三方库的源代码或者javadoc文档,以便更好地了解库的使用和细节。maven提供了一个方便的命令来下载jar包源代码和javadoc文档…

    Java 2023年5月26日
    00
  • Java下Struts框架中的ActionForm类详解

    Java下Struts框架中的ActionForm类是用于从客户端浏览器向服务器端传递数据的载体。这个类作为中介,把客户端提交的数据(如表单数据)封装为一个JavaBean对象,然后该Bean就可以在服务器端通过Struts框架进行处理。 下面是ActionForm的使用步骤: 1. 定义ActionForm类 ActionForm类需要继承org.apac…

    Java 2023年5月20日
    00
  • Android实现APP自动更新功能

    让我来讲解一下,“Android实现APP自动更新功能”的完整攻略。 1. 什么是APP自动更新功能? APP自动更新功能是指当我们开发的APP有新版本发布时,用户打开APP后会自动检测更新并提示用户更新。此功能可以为用户提供最新的APP版本,同时也可以让应用开发者方便地推出新版本并使用户及时更新升级。 2. 如何实现APP自动更新功能? 要实现APP自动更…

    Java 2023年5月23日
    00
  • Java基础知识之StringWriter流的使用

    下面是“Java基础知识之StringWriter流的使用”的完整攻略。 1. StringWriter流简介 在Java中,StringWriter流是一个带有自动缓冲区的字符流。通过使用StringWriter流,我们可以在内存中实现写字符串操作。StringWriter流无需指定目标文件或控制台输出等设备,可以将数据流写入到内存中的缓冲区,直到输出完毕…

    Java 2023年5月26日
    00
  • Java Apache POI报错“IllegalFormatException”的原因与解决办法

    “IllegalFormatException”是Java的Apache POI类库中的一个异常,通常由以下原因之一引起: 格式错误:如果格式不正确,则可能会出现此异常。例如,可能会尝试使用错误的格式解析Excel单元格中的数据。 以下是两个实例: 例1 如果格式不正确,则可以尝试使用正确的格式以解决此问题。例如,在Java中,可以使用以下代码: FileI…

    Java 2023年5月5日
    00
  • Java线程Timer定时器用法详细总结

    Java线程Timer定时器用法详细总结 在Java中,Timer定时器也称为计时器,它是一种简单的定时任务调度,可以设定指定时间时刻后执行一段代码,这种方式常常用于需要定时执行某些任务的场景,如定时检查网络连接、定时备份数据等。本文将详细总结Java线程Timer定时器的用法。 1. Timer定时器的使用 1.1 创建Timer对象 在Java中,创建T…

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