我是 Spring Boot 開發的新手。
我做了什么?
我測驗了示例 MySQL 與 Spring boot 的集成并測驗它作業正常。
我在嘗試什么?
我正在嘗試在現有專案中使用 Hibernate API。所以我創建了一個用于創建 Hibernate sessionFactory 的 util 類。
我的代碼:
public static void initSessionFactory() {
System.out.print("initSessionFactory");
if (sessionFactory == null) {
try {
Configuration configuration = new Configuration();
//***** I don't want configuration here. ******
// Hibernate settings equivalent to hibernate.cfg.xml's properties
//Properties settings = new Properties();
// settings.put(Environment.DRIVER, "com.mysql.cj.jdbc.Driver");
// settings.put(Environment.URL, "jdbc:mysql://localhost:3306/hibernate_db?useSSL=false");
// settings.put(Environment.USER, "root");
// settings.put(Environment.PASS, "root");
// settings.put(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect");
// settings.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");
// settings.put(Environment.HBM2DDL_AUTO, "create-drop");
// settings.put(Environment.SHOW_SQL, "true");
// configuration.setProperties(settings);
//configuration.addAnnotatedClass(Student.class);
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
session = sessionFactory.openSession();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我的 application.properties :(它在沒有休眠的情況下作業正常)
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/tcc
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.show-sql=true
我的問題:
我已經在 application.properties 中配置了 jdbc 環境和其他配置。它作業正常。所以我不想在我的 Java 代碼中重復相同的配置。所以我評論了這個配置。
但是如果沒有 Java 配置,它會拋出“應用程式必須提供 JDBC 連接”錯誤。
我的問題:
如何從 application.properties 為 Hibernate 設定配置?
uj5u.com熱心網友回復:
當您在 app.properties 中設定以下屬性時,Spring Boot 將在應用程式啟動時準備好您的資料庫連接。
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
spring.datasource.driver-class-name =com.mysql.jdbc.Driver
SessionFactory , ServiceRegistery即使您不想手動管理資料庫連接,也不需要創建等。
此鏈接還更詳細地解釋了這些步驟。您將看到沒有任何自定義 bean、工廠或注冊器來建立資料庫連接。請看。 https://spring.io/guides/gs/accessing-data-mysql/
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/451693.html
