Java 8およびXerial SQLITE JDBC Driverを使用しています。Java JDBCを使用してSQLITE .dbファイルへの接続を1つだけ許可します。
私は複数のユーザーを持つアプリケーションを持っていますが、各ユーザーにはそれぞれ独自のデータベース(dbFile.db
)がありますが、接続されていないユーザーは他のユーザーのデータベースにも接続できます。
問題は、毎回dbFile.db
に1人のユーザーしか接続できないようにして、接続を切断しないと(データベース接続が近い)、他のユーザーが開くことができないようにすることですそのデータベースファイルとの接続。コードは単純です
は、私は、データベースへの他の接続を防止するために、JDBCおよびJava 8
try {
//!I want here to check if another user is connected to the database!
if(otherUserConnected)
return;
// Open connection
Connection connection = DriverManager.getConnection("jdbc:sqlite:C:/../../users/d/dbFile.db");
connection.setAutoCommit(false);
} catch (SQLException ex) {
Main.logger.log(Level.SEVERE, "", ex);
}
SQLiteは実際のRDBMSではありません。それは単なるファイルです。あなたは、あなた自身でその種の要求を管理しなければならないでしょう。 – Makoto
私はプロパティDBを作成します。私は、プロパティという名前の列があります。列にはconnectionEstablishedを追加します。次に、stateという名前の列を作成します。その値をfalseに設定します。私は誰かが他のDBに接続する前に、このプロパティの値をチェックします。いくつかの接続がもう一方のdbに接続すると、値はtrueに設定されます。接続が切断されると、私はそれをfalseに戻します。 – Sedrick
@Makoto MySqlはそのような仕組みを提供していますか?私は変更することができます。 – GOXR3PLUS