Articles of SQLite

在ICS中忽略Android sqlLite ON CONFLICT IGNORE

我有一个简单的地址表,下面的创build语句: "CREATE TABLE " + ADDRESSES_TABLE + " (" + KEY_ADDRESS_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_ADDRESS_COUNTRY + " TEXT, " + KEY_ADDRESS_CITY + " TEXT, " + KEY_ADDRESS_STREET + " TEXT, " + KEY_ADDRESS_HOUSE + " TEXT, " + KEY_ADDRESS_POSTAL_CODE + " TEXT," + "UNIQUE("+KEY_ADDRESS_COUNTRY+","+KEY_ADDRESS_CITY+","+KEY_ADDRESS_STREET+","+KEY_ADDRESS_HOUSE+","+KEY_ADDRESS_POSTAL_CODE +") ON CONFLICT IGNORE)" 当我添加重复logging时,insert()metod返回-1而不是现有行的id。 这个问题只能在4.0+以上重现。 […]

Android资源文件夹中的外部数据库

我有一个android应用程序,应该读取和展开已经在sqlite上创build的数据库…它通过将数据库放在模拟器的文件资源pipe理器中的“data / data /(packagename)/ database”文件夹上, 。 现在的问题是真正的设备发生。 显然,它没有数据库打开。我试图把数据库放在资产文件夹,但我没有得到用openhelper打开它。

如何在Android上使用Xamarin的Spatialite

我想在Android上使用Spatialite而不是使用Xamarin的普通SQLite来pipe理和显示地理数据。 内置的SQLite不允许加载扩展。 我该怎么做?

SQLite的rawQuery selectionArgs和整数字段

正如Android文档所说,rawQuery方法的selectionArgs参数被parsing为string。 SQLiteDatabase.rawQuery(String sql,String [] selectionArgs) selectionArgs:您可以在查询中的where子句中包含?s,它将被来自selectionArgs的值replace。 这些值将被绑定为string。 但今天,我面临着一个我一天中很大一部分的问题。 想象下面的查询: SELECT * FROM TABLE_A WHERE IFNULL(COLUMN_A, 0) >= 15 COLUMN_A是INTEGER。 该表有大约10行,符合该标准。 在数据库编辑器上运行查询,结果始终正确,但在智能手机上,该语句始终没有返回任何行。 过了一段时间,将查询改为: SELECT * FROM TABLE_A WHERE IFNULL(COLUMN_A, 0) >= '15' 而且编辑器没有返回任何行,就像Android一样。 因此,将查询更改为: SELECT * FROM TABLE_A WHERE CAST(IFNULL(COLUMN_A, 0) as INTEGER) >= '15' 解决了这个问题。 另一个testing是: SELECT * FROM TABLE_A WHERE COLUMN_A >= '15' 也是,返回正确的结果。 […]

如何使用我自己的sqlite数据库?

我把我的数据库字段放在“assets”文件夹中。 并使用从这个博客的代码复制数据库到“/ data / data / my_packname / databases /”,(这个副本代码我运行它在onCreate()方法,当我运行这个应用程序),然后使用select * from ..获取数据。 但它给了我例外:没有这样的表。 有人告诉我,如果我试图在SQLiteOpenHelper的onCreate()中复制文件,那就太迟了。 所以复制文件代码不能复制完整的文件。 所以我需要使用adb或ddms来拉数据库? 那么,任何人都可以教我如何使用我自己的数据库? 你能告诉我的设置?

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) […]