java中数据库包装器的模式

时间:2010-05-03 13:22:54

标签: java constructor private

我目前正在编写一个包装SQLite数据库的java类。该类有两种实例化方法:

  1. 打开现有数据库。
  2. 创建新数据库。
  3. 这就是我提出的:

    public class SQLiteDatabaseWrapper {
        public static SQLiteDatabaseWrapper openExisting(File PathToDB) {
            return new SQLiteDatabaseWrapper(PathToDB);
        }
    
        public static SQLiteDatabaseWrapper createNew(File PathToDB) {
            CreateAndInitializeNewDatabase(PathToDB);
            return new SQLiteDatabaseWrapper(PathToDB);
        }
    
        private SQLiteDatabaseWrapper(File PathToDB) {
            // Open connection and setup wrapper    
        }
    }
    

    这是采用Java的方式,还是针对这种情况还有其他最佳做法?

3 个答案:

答案 0 :(得分:2)

首先:java方法应该以小写开头。它不是由编译器或语言规范强制执行的,但它是每个人都遵循的惯例,如果你不遵循它,你将遇到工具,IDE,以及最重要的其他程序员的麻烦。

答案 1 :(得分:0)

Java已经有了用于数据库抽象的标准接口,称为JDBC。最佳实践是使用现有的标准接口。这是一个很好的JDBC tutorial。你应该得到一个SQLite JDBC驱动程序并使用它。 SQLite.org有一个comprehensive list of database drivers including JDBC drivers。另外,这是一个tutorial on connecting to a SQLite database using JDBC

答案 2 :(得分:0)

你可以做到

public SQLiteDatabaseWrapper(File pathToDB, boolean createNew)
        throws IOException {

    if (!pathToDB.exists()) {
        if (createNew) {
            // Create new database, potentially throws exception
        } else {
            throw new FileNotFoundException();
        }
    }

    // Open connection and setup wrapper
}

public SQLiteDatabaseWrapper(File pathToDB) throws IOException {
    this(pathToDB, false);
}

避免依赖静态方法来创建数据库包装器的实例。