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
這應該會變得越來越明顯。透過仔細構建您的類層次結構和關係,您可以根據需要提供儘可能多或儘可能少的適當功能。