草庐IT

database-cursor

全部标签

database - 如何在 Android 中进行数据库模式迁移?

是否有在Android上进行数据库架构迁移的标准方法?例如,用户安装了我的Android应用程序的较新版本,但新版本需要对数据库架构进行更新(并且删除用户的数据库并重新开始不是一种选择!)。所以我需要在我的新版本第一次运行时运行一些ALTER语句和/或复制表。 最佳答案 是的,SQLiteOpenHelper支持在不同版本的数据库模式之间迁移。升级是通过实现来完成的publicabstractvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)并且还支持回滚到以前的版

android.database.sqlite.SQLiteDatabase.rawQuery() 没有使用 SQLite datetime() 函数更新 DATETIME 列

publicCursorset_datetime_next(Reminderr){String_newVal="datetime('now','+7days')";String[]args={newInteger(r.getID()).toString()};Stringquery="UPDATE"+DBConst.TABLE+"SET"+DBConst.f_DATETIME_NEXT+"="+_newVal+"WHERE"+DBConst.f_ID+"=?";Log.i(TAG,query);returndb.rawQuery(query,args);}我也尝试过将datetime(

android.database.sqlite.SQLiteDatabase.rawQuery() 没有使用 SQLite datetime() 函数更新 DATETIME 列

publicCursorset_datetime_next(Reminderr){String_newVal="datetime('now','+7days')";String[]args={newInteger(r.getID()).toString()};Stringquery="UPDATE"+DBConst.TABLE+"SET"+DBConst.f_DATETIME_NEXT+"="+_newVal+"WHERE"+DBConst.f_ID+"=?";Log.i(TAG,query);returndb.rawQuery(query,args);}我也尝试过将datetime(

idea自带database连接mysql失败问题

idea2023.1版连接mysql失败DBMS:MySQL(ver.5.7.13)Casesensitivity:plain=exact,delimited=exactDriver:MySQLConnectorJava(ver.mysql-connector-java-5.1.47(Revision:fe1903b1ecb4a96a917f7ed3190d80c049b1de29),JDBC4.0)[08S01] Communicationslinkfailure Thelastpacketsuccessfullyreceivedfromtheserverwas95millisecondsa

android - SQLite cursor.getCount 在 Android 中是昂贵的操作吗

在Android设备上执行时,SQLitecursor.getCount()操作是否昂贵?哪个更快:Cursorcursor=db.rawQuery(sql,null);intlength=cursor.getCount();finalListitems=newArrayList(length*2);//needmaybe2itemsperrowif(cursor.moveToFirst()){//looptroughthequeryresultdo{...或Cursorcursor=db.rawQuery(sql,null);finalListitems=newArrayList()

android - SQLite cursor.getCount 在 Android 中是昂贵的操作吗

在Android设备上执行时,SQLitecursor.getCount()操作是否昂贵?哪个更快:Cursorcursor=db.rawQuery(sql,null);intlength=cursor.getCount();finalListitems=newArrayList(length*2);//needmaybe2itemsperrowif(cursor.moveToFirst()){//looptroughthequeryresultdo{...或Cursorcursor=db.rawQuery(sql,null);finalListitems=newArrayList()

android - API 级别 <11 的 Cursor.getType()

我正在查询CallLog内容提供程序,需要检测列类型。在Honeycomb和更新版本(API级别11+)中,您可以通过调用返回以下类型之一的方法Cursor.getType(intcolumnIndex)来获取列首选数据类型:FIELD_TYPE_NULL(0)FIELD_TYPE_INTEGER(1)FIELD_TYPE_FLOAT(2)FIELD_TYPE_STRING(3)FIELD_TYPE_BLOB(4)我如何在Honeycomb我尝试了以下方法:for(inti=0;i但是,不会引发异常。数据始终以您要检查的第一种类型进行转换,在本例中为getInt()。这意味着,如果列类

android - API 级别 <11 的 Cursor.getType()

我正在查询CallLog内容提供程序,需要检测列类型。在Honeycomb和更新版本(API级别11+)中,您可以通过调用返回以下类型之一的方法Cursor.getType(intcolumnIndex)来获取列首选数据类型:FIELD_TYPE_NULL(0)FIELD_TYPE_INTEGER(1)FIELD_TYPE_FLOAT(2)FIELD_TYPE_STRING(3)FIELD_TYPE_BLOB(4)我如何在Honeycomb我尝试了以下方法:for(inti=0;i但是,不会引发异常。数据始终以您要检查的第一种类型进行转换,在本例中为getInt()。这意味着,如果列类

android - cursor.setNotificationUri() 是做什么用的?

我从thistutorial研究了如何使用ContentProviders和Loaders我是怎么看的:我们有一个带有ListView、SimpleCursorAdapter和CursorLoader的Activity。我们还实现了ContentProvider。在Activity中,我们可以通过单击按钮调用getContentResolver().insert(URI,contentValues);。在我们的ContentProvider实现中,在insert()方法的最后,我们调用getContentResolver().notifyChange(URI,null);code>和我

android - cursor.setNotificationUri() 是做什么用的?

我从thistutorial研究了如何使用ContentProviders和Loaders我是怎么看的:我们有一个带有ListView、SimpleCursorAdapter和CursorLoader的Activity。我们还实现了ContentProvider。在Activity中,我们可以通过单击按钮调用getContentResolver().insert(URI,contentValues);。在我们的ContentProvider实现中,在insert()方法的最后,我们调用getContentResolver().notifyChange(URI,null);code>和我