【问题标题】:Difference between connecting to a database using DriverManager and SpringBoot(Hibernate)使用 DriverManager 和 SpringBoot(Hibernate) 连接数据库的区别
【发布时间】:2021-07-12 07:10:48
【问题描述】:

在开发 Java 应用程序时,有两种方法可以连接到数据库。

  1. 使用 DriverManager

    Connection conn = DriverManager.getConnection(url, name, password); // 执行查询。

  2. 在 SpringBoot 中使用应用程序属性文件

    spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:5432/db_name spring.datasource.username=用户 spring.datasource.password=密码

现在您可以在您的类上使用@Entity 注解将数据放入数据库。

我的问题是这两种方式有何不同。如果不是,SpringBoot 方法是否与后台的 DriverManager 一样。

【问题讨论】:

    标签: java spring-boot hibernate jpa database-connection


    【解决方案1】:

    我假设您想通过 Driver Manager 引用 JDBC 而通过 Springboot(Hibernate) 你想说 JPA.

    为了简单地回答您的问题,JDBC 和 JPA 都将连接到驱动程序。只是如果您使用 JPA,则默认情况下会执行此步骤,而无需您对其进行显式编码。

    您可以将 JPA 视为 JDBC 的上层,它处理所有样板代码,例如连接到驱动程序。

    您可以在此处阅读有关 JPA 和 JDBC 的更多信息:JPA or JDBC, how are they different?

    【讨论】:

      【解决方案2】:

      当你设置配置属性时,你只是对 spring 说:“嘿,我有这个属性,你能自动配置我需要的吗?”。此时 spring 在应用程序启动时将使用您的配置属性来设置连接到数据库所需的一切(是否使用 DriverManager 并不重要)。

      Spring 完全按照您应该做的事情来配置您的数据库连接。

      请记住,在 99% 的情况下,您无法编写比 spring 更好的代码。所以,使用弹簧属性

      【讨论】:

      • 谢谢!!当您说或不说 DriverManager 时,您是什么意思?
      • 在这种特定情况下 spring 使用 DriverManager 但我所说的比这个特定问题更通用,因为在某些情况下 spring 使用不同的方式来实现您需要的确切组件。例如,您可以使用属性logging.level.package=DEBUG 设置日志记录级别,您将使用该属性与 log4j 和 slf4j。属性与实现无关,你永远不会关心 spring 如何实现他的组件。
      猜你喜欢
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      相关资源
      最近更新 更多