5分钟轻松解决Android数据库访问,Cursor类的基础使用

原创 2017年07月14日 15:28:56

相比于MySql等数据库,SqLite有它自己的工具Cursor,一次获取一行数据(在数据库中,一行包含了一个主键约束的索引的全部内容)。

Cursor就像高中物理课上的游标卡尺

使用游标来读数据库一般分两步:(就像在游标卡尺上读数)

1.横向的获取列名所对应的位置(储存在Cursor中的位置),getColumnIndex方法

2.通过得到的位置,getString(index) or getInt(index)

3.也可以做循环输出
while (cursor.moveNex()t){
//move方法 返回一个布尔值,当到达最后一行时,返回false
}

下面结合的例子Cursor与RecyclerLayout的结合使用,大部分代码无难度,主要是对RecyclerView的适配器不熟悉,造成加载数据的部分花了很多coding时间。

首先是cursor中数据的读取

 protected void bind(int position){
           if(!cursor.moveToPosition(position))
               return;
               //若选中位置没有数据,返回,其实还是一个安全保护,防止程序意外崩溃
               int index;
               index=cursor.getColumnIndex(WaitlistContract.WaitlistEntry.COLUMN_GUEST_NAME);
               String guestName=cursor.getString(index);
               index=cursor.getColumnIndex(WaitlistContract.WaitlistEntry.COLUMN_TIMESTAMP);
               String time=cursor.getString(index);
               nameTextView.setText(time);
               partySizeTextView.setText(guestName);
        }

其中妙处在于,RecyclerView适配器的position刚好和cursor中的moveToPosition完美的结合起来了,不得不赞叹Google工程师的智慧。

 @Override
    public GuestViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
       //获取填充器
        LayoutInflater inflater = LayoutInflater.from(mContext);
        View view = inflater.inflate(R.layout.guest_list_item, parent, false);
        return new GuestViewHolder(view);
    }

    @Override
    public void onBindViewHolder(GuestViewHolder holder, int position) {
    //holder是ViewHolder实例
          holder.bind(position);
    }



    @Override
    public int getItemCount() {
        return cursor.getCount();
    }
版权声明:通知博主后可转载

相关文章推荐

Android——使用SQLite数据库访问

SQLite            SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的...
  • l_user
  • l_user
  • 2014年09月23日 18:31
  • 386

ASP.NET数据库访问基础类

  • 2009年02月10日 08:50
  • 5KB
  • 下载

学习实践:使用模式,原则实现一个C++数据库访问类

一、概述 在我参与的多个项目中,大家使用libMySQL操作MySQL数据库,而且是源码即复用,在多个项目中有多套相同或相似的源码,这样的复用方式给开发带来了不变,而且libMySQL的使用比较麻烦...

使用设计模式构建通用数据库访问类

在应用程序的设计中,数据库的访问是非常重要的,我们通常需要将对数据库的访问集中起来,以保证良好的封装性和可维护性。在.Net中,数据库的访问,对于微软自家的SqlServer和其他数据库(支持OleD...

Android 中查询数据库时Cursor类的使用

在做一个

Java数据库访问之持久层框架:Hibernate基础

org.hibernate hibernate-core 3.6.0.Final

[android基础]Cursor类的使用

1、 CursorAdapter     继承于BaseAdapter是个虚类,它为cursor和ListView提供了连接的桥梁     直接子类只有ResourceCursorAd...

(基础)Web数据库访问编写简单示例——图书售卖系统示例2

南邮web技术的第三次实验,看起来与上次第二次的内容差别不大,但这次要访问数据库。用php连接的数据库。 代码如下:(分为main.html、process.php、order_query.html...

Android 数据库访问———日记本实例

数据库访问实例 ++++ public class ActivityMain extends ListActivity { private static final int ACT...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:5分钟轻松解决Android数据库访问,Cursor类的基础使用
举报原因:
原因补充:

(最多只允许输入30个字)