Springboot+hibernate实现简单的增删改查示例

现在我将详细讲解如何用Springboot和Hibernate实现一个简单的增删改查示例,示例将包括两个部分。

简介

Springboot是一个开源的Java开发框架,可以帮助开发者快速构建高效、可扩展的web应用程序。而Hibernate则是一个Java持久化框架,通过ORM(对象关系映射)的方式来实现对象和关系数据之间的映射。通过结合使用Springboot和Hibernate,可以让我们快速地构建出高效、优秀的web应用程序。

环境准备

在开始学习之前,请确保您的电脑已经安装好以下工具:

  1. JDK
  2. Maven
  3. IDEA开发工具

创建一个新的Springboot项目

首先,我们需要创建一个新的Springboot项目。按照以下步骤操作:

  1. 打开IDEA,点击“File” -> “New” -> “Project”。
  2. 在弹出的窗口中,选择“Spring Initializr”,并点击“Next”。
  3. 在“Project SDK”中选择你的JDK版本,然后在“Spring Initializr”页面中,选择“Web”和“Hibernate”选项。
  4. 在该页面中,我们还可以指定以下内容:

  5. 项目名字

  6. GroupID和ArtifactID
  7. 包名
  8. 项目版本号

  9. 在选择完以上内容后点击“Finish”按钮,等待IDEA自动构建项目。

添加依赖包

接下来,我们需要添加一些依赖包来帮助我们实现数据存储的功能。在我们的项目中,我们选择使用MySQL作为我们的数据库。

打开项目的pom.xml文件,添加以下依赖包:

<dependencies>
  <!--SpringBoot Web-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

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

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

</dependencies>

需要注意的是,当您添加完以上依赖包后,您需要配置一下您的MySQL数据库,让它能够连接到您的项目中。请在application.properties或者application.yml文件中添加以下代码:

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/springboot_hibernate_demo?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=

请根据实际情况,更改数据库的连接信息。

编写代码

  1. 编写实体类

首先,我们需要定义我们的实体类。在这个例子中,我们定义一个User类来存储用户信息。代码如下:

@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column
    private String name;

    @Column
    private Integer age;

    @Column
    private String address;

    public User() {
    }

    public User(String name, Integer age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}
  1. 编写Repository

接下来,我们需要定义一个Repository接口,来实现对User表的增删改查操作。在这个例子中,我们定义一个UserRepository接口。以下是我们需要编写的代码:

@Repository
public interface UserRepository extends JpaRepository<User, Integer> {

}
  1. 编写Service

在上一步中,我们完成了对于User表的Repository层的定义。接下来,我们还需要实现Service层的定义。在本例中,我们定义一个UserService接口来处理与User实体相关的业务逻辑。以下是我们需要编写的代码:

@Service
public interface UserService {

    List<User> findAll();

    User save(User user);

    User findById(Integer id);

    void deleteById(Integer id);
}

对于UserService的实现,我们创建一个叫做UserServiceImpl的类。以下是我们需要编写的代码:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserRepository userRepository;

    @Override
    public List<User> findAll() {
        return userRepository.findAll();
    }

    @Override
    public User save(User user) {
        return userRepository.save(user);
    }

    @Override
    public User findById(Integer id) {
        return userRepository.findById(id).orElse(null);
    }

    @Override
    public void deleteById(Integer id) {
        userRepository.deleteById(id);
    }
}
  1. 编写Controller

在上一步中,我们完成了对于User实体的Service层定义。接下来,我们还需要定义一个Controller层。在这个例子中,我们定义一个叫做UserController的类。以下是我们需要编写的代码:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/findAll")
    public List<User> findAll() {
        return userService.findAll();
    }

    @PostMapping("/save")
    public User save(@RequestParam("name") String name,
                     @RequestParam("age") int age,
                     @RequestParam("address") String address) {
        User user = new User(name, age, address);
        return userService.save(user);
    }

    @GetMapping("/findById")
    public User findById(@RequestParam("id") Integer id) {
        return userService.findById(id);
    }

    @DeleteMapping("/deleteById")
    public void deleteById(@RequestParam("id") Integer id) {
        userService.deleteById(id);
    }
}

示例

  1. 查询

在浏览器中访问http://localhost:8080/user/findAll,该URL将会返回数据库中所有的User信息。

  1. 新增

在浏览器中访问http://localhost:8080/user/save?name=John&age=20&address=USA,该URL将会新增一个用户名为John、年龄为20、地址为USA的User信息。

  1. 删除

在浏览器中访问http://localhost:8080/user/deleteById?id=1,该URL将会删除数据库中ID为1的User信息。

以上就是通过Springboot和Hibernate实现的一个简单的增删改查示例。希望这个例子可以帮助您更好的理解,如何使用Springboot和Hibernate构建一个高效、优秀的web应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot+hibernate实现简单的增删改查示例 - Python技术站

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

相关文章

  • SpringBoot热部署设置方法详解

    Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自动配置、快速开发和易于部署。在开发过程中,我们经常需要修改代码并重新部署应用程序。为了提高开发效率,我们可以使用Spring Boot的热部署功能,它可以在不重启应用程序的情况下自动加载修改后的代码。本文将详细介绍如何设置Spring Boot的热部署,并提供两个示例。 …

    Java 2023年5月15日
    00
  • Docker格式化输出命令:”docker inspect –format” 学习记录

    “docker inspect” 是 docker 命令之一,用于获取 docker 容器、镜像等详细信息,常用于查看某个容器的 IP 地址、挂载的数据卷等信息。而 “docker inspect –format” 则是用于格式化输出 docker inspect 命令的结果,以方便程序或脚本的处理。本攻略将详细讲解 “docker inspect –f…

    Java 2023年6月15日
    00
  • Java笔记(15) Collection集合–>List集合

    集合的理解和好处数组一旦定义,长度即固定,不能修改。要添加新元素需要新建数组,然后循环拷贝,非常麻烦 集合可以动态保存任意多个对象,使用比较方便 提供饿了一系列方便的操作对象的方法:add、remove、set、get等 使用集合添加、删除新元素的示意代码,简洁明了 集合主要是两组(单列集合,双列集合)Collection 接口有两个重要的子接口,List …

    Java 2023年4月17日
    00
  • 详解关于java文件下载文件名乱码问题解决方案

    关于Java文件下载时文件名乱码问题,可以使用以下方案解决: 方案一:使用Content-Disposition和URLEncoder 在Java中,可以使用Content-Disposition响应头设置文件下载时的文件名,再使用URLEncoder对文件名进行编码,如下: response.setHeader("Content-Disposit…

    Java 2023年5月20日
    00
  • SpringBoot发现最新版Druid重大问题(坑)

    SpringBoot发现最新版Druid重大问题(坑)攻略 问题描述 最近,在使用 SpringBoot 和 Druid 进行数据库连接池配置的时候,发现了一个最新版 Druid 的重大问题。具体表现就是,在使用了最新版 Druid 后,产生了以下的错误信息: 错误信息:Cannot create JDBC driver of class ‘com.mysq…

    Java 2023年6月3日
    00
  • Java 跳出递归循环问题解决办法

    Java 跳出递归循环问题通常出现在递归函数内部的某一个条件不满足时,需要跳出递归循环。 常见的解决办法有以下几种: 使用非递归实现 将递归函数转换成非递归的形式,使用栈或队列进行迭代实现。这样的好处是可以在循环中使用break或return语句来跳出循环。 示例1:阶乘的非递归实现 public static long factorial(int n) {…

    Java 2023年5月25日
    00
  • Java图书管理系统,课程设计必用(源码+文档)

    “Java图书管理系统,课程设计必用(源码+文档)”是一款Java语言编写的图书管理系统,它拥有完整的源码和开发文档,可供学生们作为课程设计的参考资料。下面将详细讲解该系统的开发和使用过程。 功能介绍 该系统主要实现了图书管理系统的基本功能,包括图书的添加、修改、删除和查询,读者的注册、借阅、归还和查询,管理员的登录和注销等。此外,该系统还实现了权限管理和数…

    Java 2023年5月20日
    00
  • 使用java的milo框架访问OPCUA服务的过程

    使用Java的Milo框架访问OPCUA服务的过程包括以下步骤: 引入依赖 在Maven项目中,需要在pom.xml文件中引入以下依赖: <dependencies> <dependency> <groupId>org.eclipse.milo</groupId> <artifactId>milo-…

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