android sqllite query()查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android sqllite query()查询相关的知识,希望对你有一定的参考价值。
db.query(ZGXDBhelper.ZGX_CUSTOMER_TABLE, null, "userid=?",
new String[] userid , "mtype", null, "actiontime asc"); 请问这条查询语句的结果大概是什么,mtype 是数据类型,才、actiontime 是数据上传时间
table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。
columns:要查询出来的列名。相当于select语句select关键字后面的部分。
selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?”
selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。
groupBy:相当于select语句group by关键字后面的部分
having:相当于select语句having关键字后面的部分
orderBy:相当于select语句order by关键字后面的部分,如:personid desc, age asc;
limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。追问
谢谢,但我还是不怎么明白。比我现在我有这样一张表:
查询:userid =4 的所有数据类型(type)同一类型有多条记录的,只取最近一条记录,请问怎么写查询语句?,
你这个时间格式都不统一,要比较肯定要格式一样呀,都写成hour:minute格式吧,我给你提供个思路:遍历查询到的cursor,然后将时间类型去掉”:“后转换为整形比较大小即可
本回答被提问者采纳 参考技术B 查询出的是ZGXDBhelper.ZGX_CUSTOMER_TABLE这个表中所有的数据列,条件是userid 为你传过去的userid , 查询结果以mtype分组, 按actiontime asc 倒序排列追问谢谢,你让我明白了问题所在,同样的,我还是不太清楚我的问题怎么解决,具体问题麻烦请看看我给@纪念_末班车 的回复,求指点
Android 利用xUtils框架实现对sqllite的增删改查
首先下载xUtils,下载地址:https://github.com/wyouflf/xUtils 把下载好的文件压缩,把里面的jar包拷进项目中如图所示:
这里新建一个User类进行测试增删改查
package com.example.xutilsdemo; public class User { private int id; private String name; private String email; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public User(String name, String email) { this.name = name; this.email = email; } public User(){ } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", email=" + email + "]"; } }
核心代码:
package com.example.xutilsdemo; import java.util.List; import com.lidroid.xutils.DbUtils; import com.lidroid.xutils.db.sqlite.Selector; import com.lidroid.xutils.db.sqlite.WhereBuilder; import com.lidroid.xutils.exception.DbException; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { //直接使用Dbutils,如果不能使用这个类,说明包没有导入成功 DbUtils db ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建数据库,名称为mydb db= DbUtils.create(this,"mydb"); } //保存数据事件 public void saveClick(View v){ DbUtils db = DbUtils.create(this,"mydb"); User user = new User("hyy","[email protected]"); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性 try { db.save(user); Toast.makeText(this, "ok",Toast.LENGTH_SHORT).show(); } catch (DbException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } // 使用saveBindingId保存实体时会为实体的id赋值 } //查询数据事件 public void queryClick(View v){ try { List<User> list=db.findAll(User.class); for (User user : list) { System.out.println(user); } } catch (DbException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } //根据条件查询事件 public void queryByClick(View v){ try { User user=db.findFirst(Selector.from(User.class).where("name","=","hyy")); Toast.makeText(this,user.toString(), Toast.LENGTH_SHORT).show(); } catch (DbException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } //更新数据事件 public void updateClick(View v){ User user=new User(); user.setId(1); user.setName("huyuan"); user.setEmail("[email protected]"); try { db.update(user,"name","email"); } catch (DbException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } //删除事件 public void deleteClick(View v){ try { db.delete(User.class,WhereBuilder.b("id", "=", "1")); } catch (DbException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }
以上是关于android sqllite query()查询的主要内容,如果未能解决你的问题,请参考以下文章