2017-10-23 11 views
1

私は、Javaから一度作成されたデータベースを選択するために、MySQLのUSEのような命令があるかどうかを理解しようとしています。Postgres:syntax、identifiers、instructions

私は最初にURL jdbc:postgresql://localhost:5432/(データベースなし)を介してdbmsにアクセスしたいので、dbを作成するための命令を挿入し、使用する/別の指示を選択します。

DBMSに接続し、データベースを作成し、使用し、最後に削除する機能をビルドしています(一時的なデータが必要です:H2 In Memoryを試しましたが、特定のアプリケーションでは機能しませんでした)。

私はこのような動作をMySQLで実現できましたが、不都合にも私はMySQLを使用できません。私のコードはこれでした:

manager.setJDBCDriver("com.mysql.jdbc.Driver"); 
manager.setJDBCUsername("root"); 
manager.setJDBCPassword("mypass"); 
manager.setJDBCUrl("jdbc:mysql://localhost/"); 
manager.createConnection(); 
manager.executeUpdate("CREATE DATABASE " + database); 
manager.executeUpdate("USE " + database); 

ここでは、この後者のコードを呼び出すモジュールにデータベース削除クエリを配置します。

私はPostgreSQLでもそうしたいと思います。 JDBCを使用した場合

答えて

0

あなたは代わりにあなたがsetCatalogsetSchema(あなたが使用する必要があるデータベース、ドライバおよびオブジェクトの種類によって異なります)を使用してしなければならない、useを使うべきではありません。

常にむしろUSE database 声明よりも、JDBCアプリケーションで必要な データベースを指定するConnection.setCatalog()メソッドを使用します。MySQLの

useの同等はDriver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/Jを参照してください、setCatalogです。

残念ながら、PostgreSQL JDBCドライバは別のデータベースへの切り替えをサポートしていません。接続を切断して新しい接続を作成する必要があります。

+0

こんにちは!コマンドは決して前に見たことがない、今私は見ているだろう..ちなみに、 – tom

+0

ありがとう、おそらく私は切り替える必要はありませんが、私のアプリケーションの実行ごとに、作成し、破壊するために、同じdb: manager.executeUpdate( "CREATE DATABASE" +データベース) '、あなたが言ったように、新しく作成されたデータベースに接続し、すぐに使用できなくなったらすぐに切断するというコマンドは何ですか?申し訳ありませんが、私はポイントを取得しない場合、私は英語ではあまりよくない – tom

関連する問題