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日

相关文章

  • Java实现AOP面向切面编程的实例教程

    下面就来详细讲解“Java实现AOP面向切面编程的实例教程”的完整攻略。 什么是AOP AOP(Aspect Oriented Programming,面向切面编程)是一种编程思想。与传统的OOP(Object Oriented Programming,面向对象编程)相比,AOP注重在运行时动态地将代码切入到不同的对象中进行操作。 AOP的优势 代码复用:将…

    Java 2023年5月18日
    00
  • jquery easyui 结合jsp简单展现table数据示例

    下面详细讲解“jquery easyui 结合jsp简单展现table数据示例”的完整攻略。 什么是 jQuery EasyUI? jQuery EasyUI 是一个基于 jQuery 的 UI 插件集合,它包含了一些常用的 UI 组件,如:datagrid、tree、panel、window 等,使 Web 开发更加简单和快速。 使用 jQuery Eas…

    Java 2023年6月15日
    00
  • JavaWeb文件上传流程

    JavaWeb文件上传是Web开发中经常遇到的需求,下面将详细讲解JavaWeb文件上传的流程及相关代码示例: 1. 前端文件选择及上传 在前端页面中,需要定义一个表单,使用表单的file类型获取文件,将文件数据通过Ajax发往后端服务器。 下面是一个简单的HTML页面示例,其中包含一个表单和一个上传文件的input标签: <!DOCTYPE html…

    Java 2023年5月19日
    00
  • Java fastjson解析json字符串实现过程解析

    Java Fastjson解析JSON字符串实现过程解析 Fastjson是一个高性能的Java JSON解析库,它可以将JSON字符串转换为Java对象,也可以将Java对象转换为JSON字符串。本文将会详细地介绍Fastjson解析JSON字符串的实现过程并提供两个示例说明。 Fastjson解析JSON字符串实现过程 将JSON字符串转换为AST(Ab…

    Java 2023年5月26日
    00
  • SpringBoot注册Servlet的三种方法详解

    Spring Boot注册Servlet的三种方法详解 在Spring Boot应用程序中,注册Servlet是一个非常常见的需求。本文将详细介绍Spring Boot注册Servlet的三种方法,包括使用注解、使用ServletRegistrationBean和使用WebServerFactoryCustomizer。 使用注解 使用注解是一种常见的Spr…

    Java 2023年5月15日
    00
  • SpringBoot Starter机制及整合tomcat的实现详解

    Spring Boot Starter机制是Spring Boot框架中的一个重要特性,它可以帮助我们快速集成各种常用的框架和组件。本文将详细讲解Spring Boot Starter机制及整合Tomcat的实现方法,包括以下内容: Spring Boot Starter机制简介 Spring Boot Starter的实现原理 整合Tomcat的实现方法 …

    Java 2023年5月15日
    00
  • 重新认识Java的System.in

    重新认识Java的System.in Java中的System.in是标准输入流,常用于从用户的输入中读取数据。在本文中,我们将详细介绍如何正确使用System.in。 1. 读取用户输入的整数 读取用户输入的整数有两种方法,分别是使用Scanner类和BufferedReader类。 1.1 使用Scanner类 Scanner类是一个方便的类,可以帮助我…

    Java 2023年6月15日
    00
  • GSON实现Java对象与JSON格式对象相互转换的完全教程

    GSON实现Java对象与JSON格式对象相互转换的完全教程 什么是GSON GSON是Google提供的用来在Java对象和JSON数据之间进行序列化和反序列化的Java库。GSON可以将Java对象转化为JSON字符串,也可以将JSON字符串转化为相应的Java对象。 准备工作 在使用GSON之前,您需要做以下准备工作: 下载GSON库 可以通过Mave…

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