我正在开发一款需要我使用数据库的Android应用。 读了一段时间后,我决定使用一个SQLite数据库,我开始阅读我应该如何使用它,但每本书/教程/等...通过允许用户向其添加信息来开发可更新数据库。 (如日记或运行时记录应用程序样式)。 我只需要创建(我的意思是,像硬编码)我的数据库并查询它。我的数据库不会被用户端更新。 我很确定它应该是一种简单/虚拟的方式,但我还没有找到它。 所以,如果有人能帮助我,那就太棒了。 ;)
感谢。 阿梅特。
答案 0 :(得分:1)
请检查以下链接: SQLite database tutorial with DAO and Content Provider
您只需要2个课程:
公共类MySQLiteHelper扩展了SQLiteOpenHelper {
public static final String TABLE_COMMENTS = "comments";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_COMMENT = "comment";
private static final String DATABASE_NAME = "commments.db";
private static final int DATABASE_VERSION = 1;
// Database creation sql statement
private static final String DATABASE_CREATE = "create table "
+ TABLE_COMMENTS + "(" + COLUMN_ID
+ " integer primary key autoincrement, " + COLUMN_COMMENT
+ " text not null);";
// Database creation sql statement
private static final String TABLE_CREATE = "CREATE TABLE tablename....."
public MySQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
database.execSQL(TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// You don't need this. If you don't change the DATABASE_VERSION value then this method will not be called.
}
}
公共类CommentsDataSource {
// Database fields
private SQLiteDatabase database;
private MySQLiteHelper dbHelper;
private String[] allColumns = { MySQLiteHelper.COLUMN_ID,
MySQLiteHelper.COLUMN_COMMENT };
public CommentsDataSource(Context context) {
dbHelper = new MySQLiteHelper(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
public List<Comment> getAllComments() {
List<Comment> comments = new ArrayList<Comment>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_COMMENTS,
allColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
Comment comment = cursorToComment(cursor);
comments.add(comment);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return comments;
}
private Comment cursorToComment(Cursor cursor) {
Comment comment = new Comment();
comment.setId(cursor.getLong(0));
comment.setComment(cursor.getString(1));
return comment;
}
}
答案 1 :(得分:0)
您可以使用SQLiteOpenHelper的onCreate方法来执行创建数据库所需的sql。 sql可以是硬编码的,也可以从文件中读入。这样做可以在首次运行应用程序时初始化数据库。
另一种选择是使用SQLite Database Browser
等工具这是一个可用于构建sqlite数据库的桌面应用程序。一旦你创建它,你将不得不决定如何部署它。我从来没有试过这样做,但我想你可以将它捆绑在资源文件夹中,然后在应用程序首次运行后将其移动到正确的目录中。