2017-11-08 14 views
0

に春のブートアプリケーションの実行します。 私はSpring Boot + JPA-Hibernate + MySQLを使用します。私はMySQLを理解しは、私は春ブーツCRUDアプリケーションを作成しています、と私はそれが別のコンピュータ上で実行したい別のマシン

は単なるファイルです。そしてDataSourceはサーバを意味します。私の場合はlocalhost 3306です.DBはどこですか?

データソースは、私のマシン上で実行されているように私は、MySQLのDBにアクセスすることができます。しかし、私はネットワーク上にない別のコンピュータにアプリケーションを持って行くと、私はlocalhostと私のmysqlファイルをそこに置くデータソースを作成する必要があります。右?

私の質問は、CRUDアプリが動作するたびにデータベースサーバーを起動するユーザーが関与しない方法があるかどうかです。私はスタンドアロンのアプリケーションbtwを作成しようとしています。

SQLite(サーバーレスDB)の場合と同様に、Springブートアプリケーション内でSQLファイルを使用してサーバーを起動する方法はありますか?

+0

あなたの質問は、明らかではないが、あなたのアプリケーションがどのように構造化されているか(詳細)。あなたのアプリケーションが既存のデータベースに接続できるかどうかを尋ねるのですか、あるいは単にSpring Bootを起動して使用しているデータベースサーバに新しいデータベースを自動的にデプロイして作成する方法を尋ねていますか? – Pytry

+0

ここではMySQLのデータソースの初期化について質問しています。新しいPCに持っているsqlファイルをコピーしてアプリケーションJarを実行すると、うまくいきますか? –

+0

DataSourceは、データベースへの接続を可能にするJavaオブジェクトです。データベースは、同じマシン上、またはネットワーク上の他の場所に置くことができます。データソースを設定するときにそのURLを指定することによって、その場所を定義します。 MySQLはデータベースです。これはデータソースではありません。 SQLファイルは単なるファイルです。それらはDataSourceでもデータベースでもありません。それらは実行のためにデータベースに送信できるSQL命令を含んでいます。さて、あなたは何を求めていますか? Pytryの質問に答えてください。正確な用語を使用してください。 –

答えて

0

スプリングブートではすべてのことがデフォルトになります。データベースのデフォルトはH2ですから、これを変更して他のデータベースを使用する場合は、application.propertiesファイルで接続属性を定義する必要があります。ソースフォルダで

、あなたは、リソースファイルのsrc /メイン/リソース/ application.properties

spring.jpa.hibernate.ddl-auto=create 
spring.datasource.url=jdbc:mysql://localhost:3306/db_example 
spring.datasource.username=springuser 
spring.datasource.password=ThePassword 

  • spring.jpa.hibernate.ddl-自動車をすることができます作成更新、作成、作成 - 削除、詳細は、Hibernateのドキュメントを参照してください。

  • なしこれはMySQLのデフォルトであり、データベース構造は変更されていません。 更新Hibernateは、指定されたエンティティ構造に従ってデータベースを変更します。

  • はデータベースごとに作成します。作成しますが、ときに近いそれを落とさないでください。
  • 作成・ドロップして、データベースを作成するのSessionFactoryが閉じたときに、それを削除します。

開始はまだデータベース構造がないため、作成から開始します。最初の実行後、プログラムの要件に従って、更新するかどうかを切り替えることができます。更新を使用すると、データベース構造に何らかの変更を加える必要があります。

H2および他の組み込みデータベースのデフォルトの作成・ドロップですが、MySQLのような他の人のために何も

ではありませんそれはあなたのデータベースが本番状態になった後、あなたがこの何をしないと、すべての権限を取り消すことは良いセキュリティプラクティスですSpringアプリケーションに接続しているMySQLユーザーから、SELECT、UPDATE、INSERT、DELETEだけを与えます。

は、アプリケーションを実行可能にします。

このサービスを従来のWARファイルとしてパッケージ化して、外部アプリケーションサーバーにデプロイすることは可能ですが、次に示す簡単な方法ではスタンドアロンアプリケーションが作成されます。良い古いJavaのmain()メソッドによって駆動される実行可能な単一のJARファイルにすべてをパッケージ化します。途中で、外部インスタンスにデプロイする代わりに、TomcatサーブレットコンテナをHTTPランタイムとして埋め込むためのSpringのサポートを使用します。

のsrc /メイン/ javaの/ハロー/ Application.java

package hello; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class Application { 

    public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
    } 
} 

ガイド:あなたが何をあなたの目標を明確にする必要がありますので、https://spring.io/guides/gs/accessing-data-mysql

+0

の回答をありがとうございます。私は疑いがある。この実行ファイルを別のマシンでどのように実行しますか? PCのように。データベースサーバーはないでしょうか? –

+0

スプリング・ブートを使用すると、組み込みデータベースを使用してスタンドアロン・アプリを作成することができます。最後に、すべての必要な依存関係、クラス、およびリソースを含む実行可能なjarファイルを作成して実行します。これにより、サービスを開発ライフサイクル、さまざまな環境などに渡ってアプリケーションとして配布、バージョンアップ、および展開することが容易になります。 –

+0

生成されるh2データベースで実行可能にするだけですか?あなたの答えは有望ですね –

関連する問題