Java JDBC 使用 SQLite/扩展基类
外观
现在让我们转向扩展和实现我们的具体类。首先,我们将创建一个没有任何额外功能的基抽象类的具体实现
public class MyDb extends Db
{}
现在我们可以使用参数化构造函数在我们的代码库中调用我们的数据库连接器,并使用驱动程序名称和 URL 调用它。
String sUrlString = "jdbc:sqlite:hello.db";
MyDb mydb = new MyDb("org.sqlite.JDBC",sUrlString);
这里我们对这些参数进行了硬编码,但通常你会将这些值存储为属性文件中的键值对,并从那里加载它们。
现在让我们继续,为 MyDb 子类添加一些功能。
public class MyDb extends Db
{
public MyDb(String sDriverKey, String sUrlKey)
{
init(sDriverKey, sUrlKey);
if(conn != null)
{
System.out.println("Connected OK using " + sDriverKey + " to " + sUrlKey);
}
else
{
System.out.println("Connection failed");
}
}
}
有趣但不太有用。但是参数化重载应该告诉您,如果您能够以一种通用的方式做到这一点,那么就没有什么可以阻止您创建每个数据库类型的子类;例如,从 Db 您不仅可以子类化 SqliteDb,还可以子类化 OracleDb、MySqlDb 等等,并为这些子类添加所需的数据库特定功能。
public class SqliteDb extends Db
{
String sDriverForClass = "org.sqlite.JDBC";
public SqliteDb(String sUrlKey)
{
init(sDriverForClass, sUrlKey);
[..] etcetera
这应该会变得越来越明显。通过仔细构建您的类层次结构和关系,您可以根据需要提供尽可能多或尽可能少的适当功能。