Springboot引入hibernate配置自动建表并进行增删改查操作

下面是详细的步骤:

1. 添加依赖

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

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
</dependency>

2. 配置数据库连接信息

在application.properties文件中进行数据库连接信息的配置,例如:

spring.datasource.url=jdbc:mysql://localhost:3306/sample_db?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=create-drop

上面的配置使用了MySQL作为数据库,连接的是本地的数据库sample_db,用户名是root,密码是password,使用的是UTC时区,同时配置了hibernate的ddl-auto属性为create-drop,表示每次启动后都会重新创建数据库表。

3. 创建实体类

在包含main函数的类同级目录下,创建对应的实体类,例如:

@Entity
@Table(name = "person")
public class Person {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private String name;

    private int age;

    // 省略getter和setter方法
}

其中的注解表示该类是实体类,在对应的数据库中会创建名为person的表格,表格中包含id、name和age三个字段,其中id是主键。

4. 创建数据访问接口

在对应实体类的同级目录下,创建对应的数据访问接口,例如:

@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
    List<Person> findByName(String name);
}

该接口继承了JpaRepository类,在该接口中可以实现各种对数据库的操作,例如查询、新增、修改和删除。

5. 使用Controller进行测试

在Controller中注入上一步创建的PersonRepository,并进行测试,例如:

@RestController
@RequestMapping("/person")
public class PersonController {
    @Autowired
    private PersonRepository personRepository;

    @GetMapping("/findByName")
    public List<Person> findByName(@RequestParam String name) {
        return personRepository.findByName(name);
    }

    @PostMapping("/")
    public Person addPerson(@RequestBody Person person) {
        return personRepository.save(person);
    }

    @PutMapping("/")
    public Person updatePerson(@RequestBody Person person) {
        return personRepository.save(person);
    }

    @DeleteMapping("/{id}")
    public void deletePerson(@PathVariable long id) {
        personRepository.deleteById(id);
    }
}

该Controller中包含四个方法,分别实现查询、新增、修改和删除对Person实体类的操作。

以上就是使用SpringBoot和Hibernate框架搭建的数据库配置和操作的完整攻略。

下面附上两个例子:

示例一:查询操作

请求方式:GET

请求URL:/person/findByName?name=张三

请求返回结果:

[
  {
    "id": 1,
    "name": "张三",
    "age": 20
  },
  {
    "id": 2,
    "name": "张三",
    "age": 25
  }
]

示例二:新增操作

请求方式:POST

请求URL:/person/

请求参数:

{
  "name": "李四",
  "age": 30
}

请求返回结果:

{
  "id": 3,
  "name": "李四",
  "age": 30
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot引入hibernate配置自动建表并进行增删改查操作 - Python技术站

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

相关文章

  • Java深入浅出理解快速排序以及优化方式

    Java深入浅出理解快速排序以及优化方式 快速排序简介 快速排序是一种常用的排序算法,它的基本思想是选定一个基准数,通过递归的方式将比基准数小的值放在其左侧,比基准数大的值放在其右侧,最终达到排序的效果。快速排序的时间复杂度为O(nlogn),是一种比较快速有效的排序算法。 快速排序基本流程 选择一个基准数,例如选定数组的最后一个元素作为基准数; 遍历数组,…

    Java 2023年5月19日
    00
  • 如何使用BigDecimal实现Java开发商业计算

    如何使用BigDecimal实现Java开发商业计算 Java开发中涉及商业计算时,使用double或float计算往往会存在精度问题,因此使用BigDecimal类进行计算可以避免此类问题。下面我们详细讲解如何使用BigDecimal实现Java开发商业计算的完整攻略。 引入BigDecimal类 首先需要在代码中引入BigDecimal类。 import…

    Java 2023年5月26日
    00
  • java构造函数的三种类型总结

    Java构造函数是用来初始化类的对象的函数。在Java中,有以下三种类型的构造函数: 默认构造函数(Default Constructor) 默认构造函数是没有参数的构造函数,也就是说,如果一个类没有定义任何构造函数,那么默认会有一个不带参数的构造函数。当我们创建类的对象时,如果没有显式地调用构造函数,那么就会自动调用默认构造函数。 以下是默认构造函数的示例…

    Java 2023年5月26日
    00
  • Java中的Pair详细

    Java中的Pair详解——完整攻略 在Java中,我们经常需要使用一对相关联的值,以便于更好地处理数据。Java中提供了一个名为Pair的类,用于表示这样的一对值。在这篇文章中,我们将详细介绍Java中的Pair类及其用法。 1. Pair类的定义 Pair类是JavaFX库中的一个类,用于存储两个相关联的值。通常情况下,我们使用泛型来定义Pair类,以便…

    Java 2023年5月19日
    00
  • MyBatis运行找不到xml资源文件

    MyBatis运行找不到xml资源文件 运行报错: 报错原因:程序运行后,没有将 src/main/java 目录下的资源文件(xml、properties等等)导出到 target工作目录下,所以程序找不到 java目录: 运行后的target目录:可以看到并没有 MonsterMapper.xml文件 解决方法: Maven项目在 pom.xml 文件中…

    Java 2023年4月23日
    00
  • 详解Java的文件与目录管理以及输入输出相关操作

    当我们在使用 Java 进行编程的时候,经常需要对文件与目录进行管理,同时也需要进行输入输出操作。这里针对这几个主题进行详细的讲解。 Java 的文件与目录管理 Java 提供了两个类来进行文件操作,分别是 File 和 Path。File 类代表了文件或者目录的路径,可以用来创建、查找、删除和重命名文件和目录,Path 类则将文件和目录的路径以文件系统无关…

    Java 2023年5月20日
    00
  • java微信小程序步数encryptedData和开放数据解密的实现

    实现微信小程序用户步数获取需要对用户进行授权获取,获取到用户授权后,可以获取到用户的加密数据,其中包括了微信小程序步数的加密数据。 但是获取到的小程序步数加密数据是按照AES-128-CBC加密方式进行加密的,所以在获取到的加密数据需要进行解密操作,并且需要借助微信开放数据文档提供的解密算法进行解密。 以下是具体的步骤说明: 1. 获取用户授权并获取加密数据…

    Java 2023年5月23日
    00
  • 什么是双亲委派模型?

    以下是关于双亲委派模型的详细讲解: 什么是双亲委派模型? 双亲委派模型是一种类加载机制,它是由 Java 虚拟机(JVM)实现的。在双亲委派模型中,当一个类加载器收到类加载请求时,它首先将请求委派给父类加载器,如果父类加载器无法加载该类,则将请求委派给其子类加载器。这个过程会一直持续到顶层的启动类加载器,如果启动类加载器无法加载该类,则会抛出 ClassNo…

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