2017-05-17 15 views
0

スタンドアロンのpostgresqlデータベースを使用してSpring Boot + MyBatisプロジェクトを構築しています。スタンドアロンデータベースの初期化、Spring BootとMyBatis

何らかの理由で、「規則に基づいた」データベースの初期化は行われません。手動でデータソースを追加してSQLスクリプトを作成しましたが、プロジェクトを実行するときにログからこれらのスクリプトも処理されません。私はを理解する埋め込まれていないデータベースのプロセスがどのように動作するか

コードを使用してデータソースのインスタンスを作成できますか?

データソースをプロパティファイルまたは別のクラスにリンクする必要がありますか?

別個のデータソース(ここではpostgresql)とSpringブート設定をリンクするにはどうすればよいですか?

答えて

1
  1. はい

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

    2-3。あなたはDataSourceConfiguration

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

    ベースのJavaを提供するとともに、プロパティファイルを使用して、次のように設定クラスでこれらのプロパティを参照することができます。

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

あなたがに接続するだけで1つのデータベースを持っている場合は、最も便利な方法は、接続プロパティをプロパティファイルに追加することです。プレフィックスは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'に設定すると、これらのスクリプトは省略されます。あなたのentitesに基づいてスキーマが生成され、初期化sqlをクラスパスのルートにある 'import.sql'ファイルに置くことができます。 – dimuha

関連する問題