Articles of SQLite

Android数据库每次启动应用程序时都会重新创build

为什么每次启动应用程序时,SQLiteOpenHelper都会调用onCreate()。 这是我的代码onCreate() @Override public void onCreate(SQLiteDatabase db) { Log.i("onCreate()", "Enter"); //create cards table db.execSQL( "create table circles" + "("+ "id integer primary key,"+ "x integer not null," + "y integer not null"+ ")" ); Log.i("onCreate()", "Exit"); } 我有扩展的SQLiteOpenHelper类的外部类,当我查询时,我这样做: Cursor cursor = openHelper.getWritableDatabase().rawQuery("select * from circles", null); 并跳过这个块,因为这个if语句 if (cursor.moveToFirst()) {…} 这是我的整个数据库包装类: 包db.main; import java.util.ArrayList; 导入android.content.Context; […]

检查Android的SQLite和IntelliJ

我开始使用程序创build的sqlite数据库的一个小应用程序。 有没有一种方法来检查该应用程序在模拟器上运行的数据库?

如何打印由android的query()方法执行的查询

我们将这么多的parameter passing给android的query()方法。 Android通过提供查询方法简化了我们的工作。 有没有什么办法,以便我可以打印的android查询将形成从android创build和发送到sqlite这个查询方法参数的SQL查询。

Android OrmLite预填充数据库

OrmLite是否可以创build一个sql脚本文件来轻松地用数据填充数据库? 我做了一些search,不能拿出任何简单的东西。 我知道我可以用数据创build一些对象,我只是在寻找一个更清洁的方法。 我想创build一个脚本文件,加载时打开一个阅读器,并将每个文件作为原始SQL执行executeRaw()方法。 有什么想法吗?

为数据库处理创build数据模型类

当我意识到我应该实现MVC模式时,我刚刚开始研究数据库应用程序,因为应用程序非常复杂,涉及到很多数据库操作。 对此,我决定创build一个单独的model class来处理数据库操作。 这个类将有所有的方法,将执行Sqlite命令后(例如select)将返回数据或将只是执行SQLite命令(例如删除)。 但是我想要的是从Database Adapter类,我打开,创build和closures我的数据库中分开这个类。 让我把我的概念代码: public class DataModel { /* Private members */ // Method to Select data from Student table public ArrayList<String> FetchStudents (parameter 1) { private ArrayList<String> arrStudent; DatabaseAdapter objDB= new DatabaseAdapter(); objDB.open(); /* Some code */ objDB.close(); return arrStudent } //Method to delete record from Student table public DeleteStudent(parameter 1) […]

更新sqlite数据库版本?

我有一个数据库,我想添加一列,我改变了静态数据库版本,但是当我在我的设备上运行该程序的新列仍然不存在,所以我猜我的onUpdate没有得到调用,我不知道为什么。 这是我如何创build数据库 private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { createTables(db); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w("CalendarDB", "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all […]

从每个类别中至lessselect一个?

SQLFiddle链接 我有一个SQLite数据库与一堆testing/考试问题。 每个问题都属于一个问题类别 。 我的表看起来像这样: 目标 我想要做的是select5个随机问题,但结果必须包含每个类别中的至less一个。 目标是从每个类别的问题中select一组随机的问题。 例如,输出可以是问题ID 1,2,5,7,8或2, 3, 6, 7, 8或8, 6, 3, 1, 7 。 ORDER BY category_id,RANDOM() 我可以通过执行下面的SQL从SQLite中随机获得问题列表,但是如何确保结果包含每个类别的问题? 基本上,我正在寻找这样的SQLite版本。 我只想得到5个结果,但每个类别都有一个(或多个)结果集,其中包含所有类别。 赏金 添加一个赏金,因为我很好奇是否有可能在SQLite中完成。 我可以在SQLite + Java中做到这一点,但有没有办法在SQLite中做到这一点? 🙂 SQLFiddle链接

如何在OrmLite中创buildsqlite准备语句?

是否有可能在OrmLite中创build一个SQLite准备语句? 如果是这样,如何绑定可能在不同查询中改变的查询值。

即使全新安装并重新运行后,也无法将数据库从版本2降级到1

我正在写一个使用SQLite数据库的Android应用程序。 我做了很less的实验,把DB版本从1改为2。 然后我的数据库模式变得稳定,因为我没有发布的应用程序,这是我自己的使用 我决定再次将版本更改为1。 我做了新的安装,一切正常。 但是第二次运行会抛出这个错误: 06-05 10:03:35.683: E/AndroidRuntime(9010): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1 06-05 10:03:35.683: E/AndroidRuntime(9010): at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361) 为什么呢,毕竟我做了全新的安装,数据库也应该被删除。 没有? 我怎样才能将版本更改为1?

是否有可能获得一个apk的sqlite数据库的只读访问?

可能重复: 如何将现有的数据库放在.apk文件中? 是否有可能获得一个位于apk的sqlite数据库的只读访问? 我不想复制数据库,如果可以从apk中只读的目的访问它。