我希望我不会问一些在嵌入式数据库编程中有直接答案的东西。如果我是,请指导我,我将结束这个问题。
我的问题如下:假设我的android应用程序中有一个SQLiteOpenHelper
的子类。这个子类重写了适当的方法,并且还创建了一个数据库(比如database.db),我希望它具有一些用于将东西插入数据库的功能(即每个表)。如何编写这些方法以便重复代码很少?我问这个的原因是因为每个插入方法通常完全相同:获取数据库进行编写,创建ContentValues
对象,用正确的数据填充它,并使用insert
方法SQLiteOpenHelper
。
另一个选项,如果我不希望每个表都有一个insert方法,那就是从我对SQLiteOpenHelper
的子类的引用中运行原始查询。说实话,对于通过此类插入/删除/查询数据库易于使用的API问题似乎都不是很好的解决方案。我很乐意帮助,谢谢!
答案 0 :(得分:0)
我希望我能正确理解你。您需要将SQLiteOpenHelper类移动到另一个类文件中,并在每次需要打开数据库,获取查询或插入值时重用它的代码吗?
如果是 - 我可以提供链接供您在国外阅读,也可以为您提供一些片段。
让我们建议你有子类
class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {...}
public void onCreate(SQLiteDatabase db) {...}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {...}
}
在名为DBHelper的包中创建新的java类,并在其中移动DBHelper的完整代码。当你需要在代码中引用db时,请使用:
public class MainActivity extends AppCompatActivity{
DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
//rest of your code goes here
}
如果你想在不输入光标和查询代码的情况下从db获取数据,你可以去看看答案,由OschtärEi提供(link)