当前位置:   article > 正文

SpringBoot 使用Hibernate (JPA)_hibernate springboot.jpa

hibernate springboot.jpa

SpringBoot 使用Hibernate (JPA)

简介

Hibernate是一个开源的对象关系映射(ORM)框架,为Java语言提供了一种与数据库交互的简单、高效的方式。SpringBoot是一个快速开发框架,简化了Spring应用的配置和部署。本文将介绍如何在SpringBoot项目中使用Hibernate来进行数据持久化操作。

准备工作

在开始之前,我们需要确保已经搭建好了SpringBoot项目的基础框架。具体的搭建方式可以参考Spring官方文档。

添加依赖

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

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

    <!-- Hibernate依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

配置数据库

application.properties文件中添加数据库相关的配置:

# 数据库相关配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# Hibernate配置
spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

以上配置中,我们使用的是MySQL数据库,可以根据实际情况自行修改。

创建实体类

com.example.demo.entity包下创建一个名为User的实体类:

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String username;

    private Integer age;

    // 省略getter和setter方法
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

以上代码使用了@Entity注解来标识该类是一个实体类,@Table注解用于指定对应的数据库表名,@Id注解表示该属性是实体类的主键,@GeneratedValue注解用于指定主键的生成策略。

创建DAO接口

com.example.demo.repository包下创建一个名为UserRepository的接口:

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
  • 1
  • 2
  • 3

以上代码使用了JpaRepository接口提供的默认方法来实现基本的CRUD操作。

编写业务逻辑

com.example.demo.service包下创建一个名为UserService的类:

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public void save(User user) {
        userRepository.save(user);
    }

    public User getById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    // 省略其他业务方法
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

以上代码使用了@Autowired注解来自动注入UserRepository对象,然后可以调用其提供的方法来操作数据库。

创建Controller

com.example.demo.controller包下创建一个名为UserController的类:

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/save")
    public String save(@RequestBody User user) {
        userService.save(user);
        return "Success";
    }

    @GetMapping("/{id}")
    public User getById(@PathVariable Long id) {
        return userService.getById(id);
    }

    // 省略其他请求处理方法
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

以上代码使用了@RestController注解来标识该类是一个控制器类,@RequestMapping注解用于指定映射的URL地址,@Autowired注解用于自动注入UserService对象。其中,@PostMapping@GetMapping注解用于指定POST和GET请求对应的处理方法。

编写测试用例

创建一个名为UserControllerTest的测试类,并添加以下测试方法:

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class UserControllerTest {
    @Autowired
    private MockMvc mockMvc;

    @Test
    public void testSave() throws Exception {
        User user = new User();
        user.setUsername("Tom");
        user.setAge(20);

        mockMvc.perform(post("/user/save")
                .contentType(MediaType.APPLICATION_JSON)
                .content(JSON.toJSONString(user)))
                .andExpect(status().isOk())
                .andReturn();
    }

    @Test
    public void testGetById() throws Exception {
        mockMvc.perform(get("/user/1"))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.username", is("Tom")))
                .andExpect(jsonPath("$.age", is(20)))
                .andReturn();
    }

    // 省略其他测试方法
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

以上代码使用了Spring提供的MockMvc类来模拟请求和验证结果。

运行项目

在终端中进入项目所在的根目录,执行以下命令启动项目:

mvn spring-boot:run
  • 1

然后可以在浏览器中访问http://localhost:8080/user/save来进行保存用户的操作,访问http://localhost:8080/user/1来获取ID为1的用户信息。

结束语

通过本文的介绍,我们学习了如何在SpringBoot项目中使用Hibernate来进行数据持久化操作。使用Hibernate可以简化数据库操作的代码,并提高开发效率。希望本文对你有所帮助。

内容来自老牛的个人网站:https://refblogs.com/article/392

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/815324
推荐阅读
相关标签
  

闽ICP备14008679号