我在一个类中编写了此方法,用于检查数据库中是否存在表:
public boolean DoesTableExist(String tableName) {
SQLiteDatabase mDatabase = openOrCreateDatabase("privdb",MODE_PRIVATE,null);
Cursor cursor = mDatabase.rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '"+tableName+"'", null);
if(cursor!=null) {
if(cursor.getCount()>0) {
cursor.close();
return true;
}
cursor.close();
}
return false;
}
我现在想在其他活动或类中调用此方法,而不必每次都在每个文件中编写相同的代码。 我该怎么办?
答案 0 :(得分:2)
通常,您将通过实例化该类然后调用该方法来调用另一个类中的方法。例如,如果该方法所在的类名为DatabaseUtils
,则可以执行以下操作:
DatabaseUtils dbUtils = new DatabaseUtils();
boolean exists = dbUtils.doesTableExist("tablename");
// ^ note that the normal Java convention is to make
// method names start with a lower case letter
但是,这具有“实用程序”方法的感觉(该对象可能不存储任何状态,因此实际上不需要实例化它),并且处理这些状态的常用方法是使该方法静态化,就像这样:
public static boolean doesTableExist(String tableName) {
这会使方法存在于类定义本身上,而不是存在于类的特定实例上,并允许您执行以下操作:
boolean exists = DatabaseUtils.doesTableExist("tablename");
答案 1 :(得分:0)
为该方法所在的类创建一个实例,创建一个get方法并通过该实例调用方法。 另一种选择是将方法定义为静态方法并以这种方式调用。
实例:
ClassName classInstance = new ClassName();
classInstance.getMethod(parametar);
静态:
ClassName.methodName(parametar);
答案 2 :(得分:0)
将其放入“ utils”包中将是一个不错的选择。 创建一个名为“ utils”的新Java包,添加一个新类,例如“ DatabaseUtils.java”,并使它看起来像这样:
public class DatabaseUtils {
public boolean DoesTableExist(String tableName) {
SQLiteDatabase mDatabase = openOrCreateDatabase("privdb",MODE_PRIVATE,null);
Cursor cursor = mDatabase.rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '"+tableName+"'", null);
if(cursor!=null) {
if(cursor.getCount()>0) {
cursor.close();
return true;
}
cursor.close();
}
return false;
}
}
现在您可以从其他地方引用它了
public class main {
public static void main(String [] args)
boolean isTableExisting = DatabaseUtils.doesTableExist("yourTableName")
System.out.println("Table existing? " + isTableExisting);
}
}
可能还需要传递数据库名称(“ privdb”)或引用方法“ openOrCreateDatabase(...)”的位置。
当数据库确实存在时,它将打印"Table existing? true"