Android Sqite数据库 <3>

根据上一篇文章,要注意一个操作,就是查询当然直接返回游标Cursor也行,但是如果我一定要返回一条数据,而不是Cursor,如果返回一条数据,我在应用层就可以直接使用数据了,而不需要再去while查找出一条适合的数据条目,那么就可以这样:

步骤如下:在上一篇的基础上:

<1> : 首先新建一个对象类:

public class DataUser {

    int id;
    String user;
    String nickname;
    String password;
    
}

<2> : 更新上篇中的类SQLHelper,添加查询方法:

public DataUser querys(/*query condition, eg : id*/int id){
        
        SQLiteDatabase sqldb=this.getReadableDatabase();
        
        DataUser usr=new DataUser();
        
        String columns[]={SQLManager.TABLE_USER_FIELD,SQLManager.TABLE_PASSWORD_FIELD,SQLManager.TABLE_NICKNAME_FIELD};
        String orderby=SQLManager.TABLE_ID_FIELD;
        
        String selections="id=?";
        String conditions[]=new String[]{""+id};
        
        Cursor cr = sqldb.query(SQLManager.SQ_LITE_DATABASE_TABLE, columns,
    selections, conditions, null, null, null);
cr.moveToFirst(); //only a data list return usr.id=id; usr.user=cr.getString(1); usr.nickname=cr.getString(2); usr.password=cr.getString(3); return usr; }

<3> : 如果有很多条记录需要返回,可以这样改:比如返回密码相同的所有数据条目:

public List<DataUser> querys(/* query condition, eg : pwd */String password) {

        SQLiteDatabase sqldb = this.getReadableDatabase();

        List<DataUser> usrl = new ArrayList<DataUser>();
        DataUser usr=new DataUser();

        String columns[] = { SQLManager.TABLE_USER_FIELD,
                SQLManager.TABLE_PASSWORD_FIELD,
                SQLManager.TABLE_NICKNAME_FIELD };
        String orderby = SQLManager.TABLE_ID_FIELD;

        String selections = "u_pwd=?";
        String conditions[] = new String[] { "" + password };

        Cursor cr = sqldb.query(SQLManager.SQ_LITE_DATABASE_TABLE, columns,
    selections, conditions, null, null, null);
cr.moveToFirst(); // only a data list return while (!cr.isAfterLast()) { usr.id = cr.getInt(0); usr.user = cr.getString(1); usr.nickname = cr.getString(2); usr.password = cr.getString(3); usrl.add(usr); cr.moveToNext(); } return usrl; }

OK,其他的一次类推即可以了

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值