当前位置:   article > 正文

hibernate入门,springboot整合hibernate

springboot整合hibernate

Mybatis和Hibernate是我们常用的两大ORM框架,这篇文章主要介绍hibernate的使用,如何通过springboot整合hibernate,实现简单的crud功能。

创建项目

首先,需要创建一个springboot项目springboot-hibernate

添加maven依赖

项目创建完成后,修改pom.xml,添加项目必要的的依赖。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.5.9</version>
  9. <relativePath />
  10. </parent>
  11. <groupId>com.example</groupId>
  12. <artifactId>springboot-hibernate</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>springboot-hibernate</name>
  15. <description>Spring Boot整合hibernate案例项目</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. <mysql.version>8.0.28</mysql.version>
  19. <druid.version>1.1.21</druid.version>
  20. <lombok.version>1.18.22</lombok.version>
  21. </properties>
  22. <dependencies>
  23. <dependency>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-starter-web</artifactId>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-starter-test</artifactId>
  30. <scope>test</scope>
  31. </dependency>
  32. <!--lombok-->
  33. <dependency>
  34. <groupId>org.projectlombok</groupId>
  35. <artifactId>lombok</artifactId>
  36. <version>${lombok.version}</version>
  37. </dependency>
  38. <!--mysql-->
  39. <dependency>
  40. <groupId>mysql</groupId>
  41. <artifactId>mysql-connector-java</artifactId>
  42. <version>${mysql.version}</version>
  43. </dependency>
  44. <!--druid-->
  45. <dependency>
  46. <groupId>com.alibaba</groupId>
  47. <artifactId>druid</artifactId>
  48. <version>${druid.version}</version>
  49. </dependency>
  50. <!--hibernate-->
  51. <dependency>
  52. <groupId>org.springframework.boot</groupId>
  53. <artifactId>spring-boot-starter-data-jpa</artifactId>
  54. </dependency>
  55. <dependency>
  56. <groupId>org.hibernate</groupId>
  57. <artifactId>hibernate-core</artifactId>
  58. </dependency>
  59. </dependencies>
  60. <build>
  61. <plugins>
  62. <plugin>
  63. <groupId>org.springframework.boot</groupId>
  64. <artifactId>spring-boot-maven-plugin</artifactId>
  65. </plugin>
  66. </plugins>
  67. </build>
  68. </project>

修改配置文件

然后修改配置文件application.yml

  1. server:
  2. port: 8080
  3. servlet:
  4. context-path: /
  5. spring:
  6. datasource:
  7. username: root
  8. password: root
  9. url: jdbc:mysql://localhost:3306/springboot-hibernate
  10. driver-class-name: com.mysql.cj.jdbc.Driver
  11. type: com.alibaba.druid.pool.DruidDataSource
  12. # 只返回不为null的数据
  13. jackson:
  14. default-property-inclusion: non_null
  15. jpa:
  16. database: MYSQL
  17. show-sql: true
  18. hibernate:
  19. ddl-auto: update
  20. properties:
  21. hibernate:
  22. dialect: org.hibernate.dialect.MySQL8Dialect
  23. database-platform: org.hibernate.dialect.MySQL8Dialect
  24. logging:
  25. level:
  26. springfox: error
  27. com.example.hibernate: debug

完成以上工作,就可以开始使用hibernate了。

创建实体类

首先创建一个实体类User:在项目根目录下创建entity包,在entity包下创建一个类User

  1. package com.example.hibernate.entity;
  2. import lombok.Data;
  3. import javax.persistence.*;
  4. import java.io.Serializable;
  5. /**
  6. * @author heyunlin
  7. * @version 1.0
  8. */
  9. @Data
  10. @Entity
  11. @Table(name = "user")
  12. public class User implements Serializable {
  13. private static final long serialVersionUID = 18L;
  14. @Id
  15. @GeneratedValue(strategy = GenerationType.AUTO)
  16. private Integer id;
  17. /**
  18. * 用户名
  19. */
  20. @Column(name = "username")
  21. private String username;
  22. /**
  23. * 密码
  24. */
  25. @Column(name = "password")
  26. private String password;
  27. }

其中@Entity表示这是一个JPA实体类,@Table(name = "user")指定实体类对应数据库表名为user,@Id表示数据库的标识字段,也就是主键,@Column指定对应数据库字段。

创建持久层接口

接下来,创建持久层对象

在项目根目录下创建dao包,在entity包下创建一个UserDao接口,然后继承JpaRepository接口,该接口有两个参数化类型,第一个表示实体类的类型,第二个表示主键的类型,也就是@Id注解标注的字段的类型,这里是Integer。

  1. package com.example.hibernate.dao;
  2. import com.example.hibernate.entity.User;
  3. import org.springframework.data.jpa.repository.JpaRepository;
  4. import org.springframework.stereotype.Repository;
  5. /**
  6. * @author heyunlin
  7. * @version 1.0
  8. */
  9. @Repository
  10. public interface UserDao extends JpaRepository<User, Integer> {
  11. }

然后在启动类上面使用@EnableJpaRepositories注解

  1. package com.example.hibernate;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.boot.SpringApplication;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6. import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
  7. /**
  8. * @author heyunlin
  9. * @version 1.0
  10. */
  11. @SpringBootApplication
  12. @EnableJpaRepositories
  13. public class HibernateApplication {
  14. private static final Logger logger = LoggerFactory.getLogger(HibernateApplication.class);
  15. public static void main(String[] args) {
  16. if (logger.isDebugEnabled()) {
  17. logger.debug("启动hibernate...");
  18. }
  19. SpringApplication.run(HibernateApplication.class, args);
  20. }
  21. }

创建业务层接口

接下来创建业务层,在项目根目录下创建service包,在service包下创建一个UserService接口

  1. package com.example.hibernate.service;
  2. import com.example.hibernate.entity.User;
  3. import java.util.List;
  4. /**
  5. * @author heyunlin
  6. * @version 1.0
  7. */
  8. public interface UserService {
  9. /**
  10. * 查询全部用户
  11. * @return List<User>
  12. */
  13. List<User> selectAll();
  14. }

service包下面创建impl包,在impl包下创建UserService的实现类,调用持久层userDao的方法

  1. package com.example.hibernate.service.impl;
  2. import com.example.hibernate.dao.UserDao;
  3. import com.example.hibernate.entity.User;
  4. import com.example.hibernate.service.UserService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import java.util.List;
  8. /**
  9. * @author heyunlin
  10. * @version 1.0
  11. */
  12. @Service
  13. public class UserServiceImpl implements UserService {
  14. private final UserDao userDao;
  15. @Autowired
  16. public UserServiceImpl(UserDao userDao) {
  17. this.userDao = userDao;
  18. }
  19. @Override
  20. public List<User> selectAll() {
  21. return userDao.findAll();
  22. }
  23. }

使用Hibernate的接口方法

创建数据库springboot-hibernate,然后启动项目。

可以看到,hibernate在启动过程中自动根据User实体类帮我们创建了user表。

接着我们往表里插一条数据用来测试

INSERT INTO user(id, username, password) VALUES (1, '沐雨橙风', '12345');

然后在浏览器访问http://localhost:8080/user/selectAll获取全部用户。


项目代码已经上传至git,需要的可以下载

Spring Boot整合hibernate案例项目icon-default.png?t=N7T8https://gitee.com/muyu-chengfeng/springboot-hibernate.git好了,文章就分享到这里了,看完如果觉得对你有所帮助,不要忘了点赞+收藏哦~

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

闽ICP备14008679号