当前位置:首页 » 安卓系统 » androidrawquery

androidrawquery

发布时间: 2023-10-21 04:22:30

1. android query 模糊查询怎么使用

关于Android中 Cursor 的query加入明御模糊查询的条件,有如下方式:
1.使用这种query方法%号前不能加',以下为示例代码:
Cursor c_test = mDatabase.query(tab_name, new String[]{tab_field02}, tab_field02+" LIKE ? ",
new String[] { "%" + str[0] + "%" }, null, null, null);

2.使用这则槐氏种query方法%号前必须加',以下为示例代码 :
Cursor c_test=mDatabase.query(tab_name, new String[]{tab_field02},tab_field02+" like '%" + str[0] + "%'孙散", null, null, null, null);

3.使用这种方式必须在%号前加' ,以下为示例代码 :
String current_sql_sel = "SELECT * FROM "+tab_name +" where "+tab_field02+" like '%"+str[0]+"%'";
Cursor c_test = mDatabase.rawQuery(current_sql_sel, null);

2. android rawQuery内的参数是什么鬼

你好,rawQuery里面的参数是数据库查询语句。就是标准的SQL语句,如果不了解,可以找点数据库的书籍看看,SQL语句是数据库最基本的,也是非常重要的知识点。这语句意思是,在dict数据库表中查询word字段或者detail字段中包含key的项。其中的*代表所有的,就是数据库中的所有字段都要查询出来,%是通配符,%key%,代表只要字符串有key就符合(key%代表以key开头,%key代表以key结尾),问号是传入参数的意思,就是将后面的两个"%" + key + "%"按顺序传入问号处

3. android 开发里的 SQLite数据库的一段 查询记录总数,谁能讲解下看不懂

//得到操作数据库的实例
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
// 调用查找书库代码并返回数据败梁指源
Cursor cursor = db.rawQuery("select count(*)from person",null);
//游标移到第一条记录渣行准备获取数察配据
cursor.moveToFirst();
// 获取数据中的LONG类型数据
Long count = cursor.getLong(0);

这些去查看Android的开发文档都有的

4. Android用query怎么进行多条件查询

SQLiteDatabase 给我提供的方法很不实用,还是建议楼主自己写sql语句,参数想怎么传都可以x0dx0a例如:Cursor c = db.rawQuery("select * from user where username=? and password = ?",x0dx0anew Stirng[]{"用户名","密码"});x0dx0ax0dx0a如果你非要调用SQLiteDatabase的query方法,那可以这样x0dx0adb.query("表名", new String[]{"字段1,字段2"}, "条件1=? and 条件2=?", new String[]{"条件1的值,条件2的值"},null,null,null)

5. android sqlite中查询数据rawQuery方法中String[] selectionArgs的详解,谢谢!!!

既然你选择了有条件的sql语句,假如你有一个data表有下面这样的数据
id name number
1 lisi 5554
2 wangwu 5556
rawQuery的sql语句select * from data where name=?,后面selectionArgs是?条件值,如果?这个占位符为null的话就表示把所有的name查出来(lisi,wangwu都会返回到Cursor结果集里),如果这个?占位符有值为wangwu,就表示只把wangwu这条数据查出来,所以?就是selectionArgs占位符,而selectionArgs就是具体条件,为null就表示全部都要,如果指定的要选wangwu就要new String[] {"wangwu"}这个占位符?的值给出来。

6. android 怎么往数据库里面添加数据

一、引入
数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了。基
本的操作包括创建、读取、更新、删除,即我们通常说的 CRUD(Create, Read, Update, Delete)。
在实现这些操作的时候,我们会使用到两个比较重要的类 SQLiteDatabase 类和 Cursor 类。

二、创建表
1,execSQL(String sql):执行一条 sql 语句,且执行操作不能为 SELECT
因为它的返回值为 void,所以推荐使用 insert、update 方法等
2.,execSQL (String sql,Object[] bindArgs)
sql:执行一条 sql 语句
bindArgs:为 sql 语句中的?赋值

三、添加数据
1、execSQL(String sql)
2、使用对象的 insert 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
db.insert(TABLE_NAME, null, values);
参数:
table:数据库中的表名
nullColumnHack:指定默认插入字段,为 null 时能插入数据
values:表示插入字段所对应的值,使用 put 方法。

四、删除数据
1、execSQL(String sql)
2、使用对象的 delete 方法
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(id)};
//db.delete(TABLE_NAME, "_id="+id, null);
db.delete(TABLE_NAME, whereClaues, whereArgs);
参数
table:数据库的表名
whereClause:where 子句,比如:_id=?
whereArgs:where 子句中?的值

五、修改数据
1、execSQL(String sql)
2、使用对象的 delete 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(user.getId())};
db.update(TABLE_NAME, values, whereClaues, whereArgs);
参数
table:数据库的表名
values:代表要修改的值,修改方法还是 put(key,values)
whereClause:条件子句,比如 id=?,name=?
whereArgs:为 whereClause 中的?赋值,比如:new String[]{"1","张三"}

图:

参考代码:

程序内使用SQLite数据库是通过SQLiteOpenHelper进行操作

1.自己写个类继承SQLiteOpenHelper,重写以下3个方法

publicvoidonCreate(SQLiteDatabasedb)

{//创建数据库时的操作,如建表}

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)

{

//版本更新的操作

}

2.通过SQLiteOpenHelper的getWritableDatabase()获得一个SQLiteDatabase数据库,以后的操作都是对SQLiteDatabase进行操作。

3.对得到的SQLiteDatabase对象进行增,改,删,查等操作。

代码

packagecx.myNote;

importandroid.content.ContentValues;

importandroid.content.Context;

importandroid.content.Intent;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.database.sqlite.SQLiteOpenHelper;

//DBOptionsforlogin

publicclassDBOptions{

privatestaticfinalStringDB_NAME="notes.db";

privatestaticfinalStringDB_CREATE="createtablelogininf(nametext,pwdtext)";

{

publicDBHelper(Contextcontext){

super(context,DB_NAME,null,1);

}

@Override

publicvoidonCreate(SQLiteDatabasedb){

//TODOAuto-generatedmethodstub

//建表

db.execSQL(DB_CREATE);

}

@Override

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){

//TODOAuto-generatedmethodstub

db.execSQL("droptableifexistslogininf");

onCreate(db);

}

}

privateContextcontext;

privateSQLiteDatabasedb;

privateDBHelperdbHelper;

publicDBOptions(Contextcontext)

{

this.context=context;

dbHelper=newDBHelper(context);

db=dbHelper.getReadableDatabase();

}

//自己写的方法,对数据库进行操作

publicStringgetName()

{

Cursorcursor=db.rawQuery("selectnamefromlogininf",null);

cursor.moveToFirst();

returncursor.getString(0);

}

publicintchangePWD(StringoldP,Stringpwd)

{

ContentValuesvalues=newContentValues();

values.put("pwd",pwd);

returndb.update("logininf",values,"pwd="+oldP,null);

}

}


insert方法插入的一行记录使用ContentValus存放,ContentValues类似于Map,它提供了put(String key, Xxx value)(其中key为数据列的列名)方法用于存入数据、getAsXxxx(String key)方法用于取出数据

7. Android GreenDao rawQuery 之 like 、 or、 = 拼接查询条件

private void queryLocomotiveList() {

        List<Locomotive> locomotiveList = new ArrayList<>();

        String locomotiveModeName = tvEngineMode.getText().toString().trim();

        String locomotive = tvEngineNo.getText().toString().trim();

        try {

            //请求参数

            ArrayList<String> strParamLt = new ArrayList<String>();

            String queryString =

                    "SELECT DISTINCT *  FROM " + LocomotiveDao.TABLENAME + " where 1==1 ";

            if (!TextUtils.isEmpty(locomotiveModeName)) {

                queryString = queryString + " and " + LocomotiveDao.Properties.TrainModelName.columnName + " =  ?";

                strParamLt.add(locomotiveModeName);

            }

            if (!TextUtils.isEmpty(locomotive)) {

                queryString = queryString + " and " + LocomotiveDao.Properties.TrainNo.columnName + " like '%" + locomotive + "%' ";

            }

            if (!TextUtils.isEmpty(healthy) || !TextUtils.isEmpty(attention) || !TextUtils.isEmpty(repair)){

                String healthyTypeStr = " and " + "(";

                if (!TextUtils.isEmpty(healthy)) {

                    healthyTypeStr += LocomotiveDao.Properties.HealthAnalysisLevel.columnName + " =  ?" + " or ";

                    strParamLt.add(healthy);

                }

                if (!TextUtils.isEmpty(attention)) {

                    healthyTypeStr += LocomotiveDao.Properties.HealthAnalysisLevel.columnName + " =  ?" + " or ";

                    strParamLt.add(attention);

                }

                if (!TextUtils.isEmpty(repair)) {

                    healthyTypeStr += LocomotiveDao.Properties.HealthAnalysisLevel.columnName + " =  ?";

                    strParamLt.add(repair);

                }

                if (healthyTypeStr.endsWith("or ")){

                    healthyTypeStr = healthyTypeStr.substring(0,healthyTypeStr.length() - 3);

                }

                healthyTypeStr += ")";

                queryString = queryString + healthyTypeStr;

            }

            Log.e("queryString",queryString);

            Object[] objs = strParamLt.toArray();

            String[] strs = new String[objs.length];

            for (int i = 0; i < objs.length; i++) {

                strs[i] = objs[i].toString();

            }

            Log.e("strs",new Gson().toJson(strs));

            Cursor cursor = DaoManager.getInstance().getDaoSession().getDatabase().rawQuery(queryString, strs);

            int trainNoIndex = cursor.getColumnIndex(LocomotiveDao.Properties.TrainNo.columnName);

            int trainModeNameIndex = cursor.getColumnIndex(LocomotiveDao.Properties.TrainModelName.columnName);

            int healthIndex = cursor.getColumnIndex(LocomotiveDao.Properties.HealthAnalysisLevel.columnName);

            while (cursor.moveToNext()) {

                Locomotive bean = new Locomotive();

                bean.setTrainNo(cursor.getString(trainNoIndex));

                bean.setTrainModelName(cursor.getString(trainModeNameIndex));

                bean.setHealthAnalysisLevel(cursor.getString(healthIndex));

                locomotiveList.add(bean);

            }

            Log.e("locomotiveList",new Gson().toJson(locomotiveList));

        } catch (Exception e) {

            e.printStackTrace();

        }

        mAdapter.setNewData(locomotiveList);

    }

8. 如何在android中用litepal查询一个已存在的数据库

其实最传统的查询数据的方式当然是使用SQL语句了,Android当中也提供了直接使用原生SQL语句来查询数据库表的方法,即SQLiteDatabase中的rawQuery()方法,方法定义如下:publicCursorrawQuery(Stringsql,String[]selectionArgs)其中,rawQuery()方法接收两个参数,第一个参数接收的就是一个SQL字符串,第二个参数是用于替换SQL语句中占位符(?)的字符串数组。rawQuery()方法返回一个Cursor对象,所有查询到的数据都是封闭在这个对象当中的,我们只要一一取出就可以了。

热点内容
赛风怎么用安卓 发布:2024-11-30 11:42:28 浏览:981
安卓怎么充高会 发布:2024-11-30 11:29:49 浏览:656
什么是手机本地服务器ip 发布:2024-11-30 11:13:21 浏览:288
压缩袋无泵 发布:2024-11-30 11:13:11 浏览:676
去角质皮面膜怎么样配置 发布:2024-11-30 10:44:22 浏览:808
证券首次开户后为什么没密码 发布:2024-11-30 10:41:57 浏览:316
玩具厂数据库 发布:2024-11-30 10:41:57 浏览:786
学校考试服务器地址 发布:2024-11-30 10:35:30 浏览:683
nas无盘服务器搭建教程 发布:2024-11-30 10:27:07 浏览:156
触摸精灵脚本解密 发布:2024-11-30 10:27:04 浏览:328