android-如何使用Anko和Kotlin获取SQLite表的最大_id值?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android-如何使用Anko和Kotlin获取SQLite表的最大_id值?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1232字,纯文字阅读大概需要2分钟。
内容图文
![android-如何使用Anko和Kotlin获取SQLite表的最大_id值?](/upload/InfoBanner/zyjiaocheng/886/fb8c6c9b54e34f7bb01bd82cbdc78ee4.jpg)
DBRecordTable._ID是一个INTEGER PRIMARY_KEY AUTOINCREMENT,我希望获取表的最大_id值,如果表中没有数据行,则将返回零.
我尝试编写代码select(tableName,DBRecordTable._ID).orderBy(DBRecordTable._ID,Desc).limit(1),但它不正确,该如何解决?
码
class DBRecordHandler(private val mDBHelper: DBRecordHelper =DBRecordHelper.instance,
private val tableName:String =DBRecordTable.TableNAME,
private val idField:String=DBRecordTable._ID
) {
fun getMaxID():Long=mDBHelper.use{
var myList=select(tableName,DBRecordTable._ID).orderBy(DBRecordTable._ID, Desc).limit(1);
}
}
class DBRecordHelper(mContext: Context = UIApp.instance) : ManagedSQLiteOpenHelper(mContext, DB_NAME, null, DB_VERSION) {
companion object {
const val DB_NAME = "record.db"
const val DB_VERSION = 5
val instance by lazy { DBRecordHelper() }
}
override fun onCreate(db: SQLiteDatabase) {
db.createTable( DBRecordTable.TableNAME , true,
DBRecordTable._ID to INTEGER + PRIMARY_KEY+ AUTOINCREMENT,
DBRecordTable.CreatedDate to INTEGER
)
}
}
解决方法:
您可以使用SQL MAX()函数找到表内容的最大ID:
private fun getMaxID(): Int {
var maxId = 0
mDBHelper?.use {
select(DBRecordTable.TableNAME, "MAX(${DBRecordTable._ID}) as maxId").exec {
moveToNext()
maxId = getInt(getColumnIndex("maxId"))
}
}
return maxId
}
内容总结
以上是互联网集市为您收集整理的android-如何使用Anko和Kotlin获取SQLite表的最大_id值?全部内容,希望文章能够帮你解决android-如何使用Anko和Kotlin获取SQLite表的最大_id值?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。