我正在做一个android项目,即将使用sqlite创建本地数据库。我已经阅读了几个教程但仍然困惑什么是创建android db的好方法我不知道为什么使用数据库的内容提供程序是好的,因为那些uri的东西让我更加困惑..任何人都可以推荐一个好的教程吗?
另外,我是否必须为我想要使用的每个数据表创建一个扩展 SQLiteOpenHelper 的类?假设我在应用程序中需要三个表格。
然后我需要制作三个不同的SQLiteOpenHelper来管理数据吗?或者有没有办法合并所有这些表并使用一个数据库实例来访问和操作数据? 感谢
答案 0 :(得分:0)
我是android studio的初学者,我会向想要学习SQLite数据库的每个人推荐这个。被称为Bucky的人是一个非常善良的人,可以教得很好,希望它有所帮助,你不会后悔看着它
答案 1 :(得分:0)
是的,最好为每个函数创建单独的类。对于每个函数,您应该创建一个单独的类,如注册,登录等。在每个类中,您必须扩展SQLiteOpenHelper。
一个非常好的SQLite教程由谷歌本身提供sqlite by google
答案 2 :(得分:0)
看一下这个视频,通常视频比阅读教程更有帮助:
https://www.youtube.com/watch?v=Aui-kFuXFYE
对于第二个问题,您不需要为不同的表创建不同的数据库。数据库可以处理多个表。
答案 3 :(得分:0)
我自己移动到Realm.io for android。它更快,更简单,更清晰的代码,您可以使用对象。如果有兴趣继续使用领域,我可以帮助你。
但是如果你想继续使用SQLLite:
最佳做法是构建1个openHelperClass。
public class DatabaseHandler extends SQLiteOpenHelper {
//Database Version
private static final int DATABASE_VERSION = 1;
//Database Name
private static final String DATABASE_NAME = "myDB";
//Tables
//Table1 + Columns
private static final String TABLE_1 = "tb1"; //Table
private static final String KEY_TB1_1 = "tb1col1";
private static final String KEY_TB1_2 = "tb1col2";
//Table2 + Columns
private static final String TABLE_2 = "tb2";
private static final String KEY_TB2_1 = "tb2col1";
private static final String KEY_TB2_2 = "tb2col2";
//Constructor
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
//onCreate
@Override
public void onCreate(SQLiteDatabase db) {
//Create TB1
String CREATE_TABLE = "CREATE TABLE " + TABLE_1 + "(" +
KEY_TB1_1 + " TEXT, " +
KEY_TB1_2 + " TEXT)";
db.execSQL(CREATE_TABLE);
//Create TB2
CREATE_TABLE = "CREATE TABLE " + TABLE_2 + "(" +
KEY_TB2_1 + " TEXT, " +
KEY_TB2_2 + " TEXT)";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_1);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_2);
onCreate(db);
}
}
然后从这里继续创建添加,删除,更新表中数据的方法。