使用JavaJDBC只允许一次连接到SQLITE.db文件
我正在使用Java8和 我有一个应用程序,它有多个用户,每个用户都有自己的数据库(使用JavaJDBC只允许一次连接到SQLITE.db文件,java,sqlite,Java,Sqlite,我正在使用Java8和 我有一个应用程序,它有多个用户,每个用户都有自己的数据库(dbFile.db),但是任何用户在未连接时也可以连接到其他用户的数据库 问题是,我希望每次只有一个用户能够连接到dbFile.db,如果他/她没有断开连接(关闭数据库连接),那么其他用户就不能打开与该数据库文件的连接 代码很简单,我只是使用JDBC和Java8打开一个连接 try { //!I want here to check if another user is connected to
dbFile.db
),但是任何用户在未连接时也可以连接到其他用户的数据库
问题是,我希望每次只有一个用户能够连接到dbFile.db
,如果他/她没有断开连接(关闭数据库连接),那么其他用户就不能打开与该数据库文件的连接
代码很简单,我只是使用JDBC和Java8打开一个连接
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;这只是一个文件。您必须自己管理这种需求。我将创建一个属性数据库。我将有一个名为property的列。在专栏中,我将添加connectionEstablished。然后我将创建一个名为state的列。我会将该值设置为false。在允许某人连接到另一个db之前,我会检查此属性值。一旦某个on连接到另一个db,就会将value设置为true。当它们断开连接时,我会将其设置为false。@Makoto MySql提供了这样的机制吗?我可以换衣服。@SedrickJefferson你好,Sedrick。问题总是来了。如果应用程序从任务栏终止或出现错误,该怎么办。坏人将永远被锁住。因为锁将保留。我需要一些想法来解决它。很好!您必须使用始终在close上运行的块。请给我Java代码好吗☺️? 如果用户从任务栏终止应用程序,会发生什么?“PRAGMA”将永远不变?PRAGMA是一个SQL命令;只要执行它。SQLite使用操作系统锁定功能,所以Windows会自动移除锁定。为什么你的答案会被否决?可能是因为你只提供了链接。如果您添加一些代码行,我可以接受:)