2017-05-17 83 views
0

我使用獨立的postgresql數據庫構建Spring Boot + MyBatis項目。初始化獨立數據庫,Spring Boot和MyBatis

那麼,出於某種原因,「基於約定」的數據庫初始化不會發生。我手動添加了數據源,創建了sql-scripts,但是當我運行項目時,從日誌中甚至沒有處理這些腳本。我想瞭解該進程如何工作的非嵌入式數據庫。

可以使用代碼創建數據源的實例嗎?

我應該在屬性文件還是單獨的類中鏈接數據源?

如何將單獨的數據源(本例中爲postgresql)與Spring Boot配置鏈接起來應該做些什麼?

回答

1
  1. @Bean 
    public DataSource dataSource() { 
        DataSourceBuilder.create() 
            .url("jdbc:postgresql://localhost:5432/database") 
            .username("username") 
            .password("password") 
            ... 
            .build(); 
    } 
    

    2-3。您可以使用屬性文件,提供基於Java的DataSourceConfiguration

    spring.datasource.url: jdbc:postgresql://localhost:5432/database 
    spring.datasource.username: username 
    spring.datasource.password: pasword 
    

    沿着而在你的配置類是指這些屬性如下:

    @Bean 
    @ConfigurationProperties(prefix = "spring.datasource") 
    public DataSource dataSource() { 
        return DataSourceBuilder.create().build(); 
    } 
    

如果只有一個數據庫連接時,最方便的方法是將它的連接屬性添加到屬性文件中,其前綴爲spring.datasourcescroll here to check available options),並將org.postgresql依賴項添加到pom.xml(build.grade)文件,SpringBoot將完成剩下的工作。

+0

謝謝你的迴應。我使用'application.properties'文件,建立了與數據源的連接,但似乎springboot甚至沒有嘗試連接。我的意思是,腳本'schema.sql''data.sql'必須在服務器部署之前執行,並且我甚至不使用'spring.jpa.show-sql = true'在日誌文件中進行跟蹤。 –

+0

如果將'spring.jpa.hibernate.ddl-auto'屬性設置爲'create-drop'或'create',則省略這些腳本。 Schema是根據您的實體生成的,您可以將初始化sql放入類路徑根目錄下的import.sql文件中。 – dimuha

相關問題