java - 如何在从第一个 Activity 收到的 sqlite 查询中传递整数变量?

标签 java android android-sqlite

我是 Android 设备编程新手。我有两个 Activity ,在第一个 Activity 中,我将一个整数值从第一个 Activity 发送到第二个 Activity 。

如何在我从第一个 Activity 收到的 sqlite 查询中添加此变量?

我想在查询中写入 b=1 的位置添加书号,我想用书号替换 1

private void setData() {

    Intent mIntent = getIntent();
    int booknumber= mIntent.getIntExtra("booknumber", 0);

    stringArrayList = new ArrayList<>();

    mDBHelper = new DatabaseHelper(this);
    mDb = mDBHelper.getReadableDatabase();

    Cursor cursor = mDb.rawQuery("select DISTINCT c from t_asv where b=1", new String[]{});

    if(cursor!=null && cursor.getCount() > 0)
    {
        if (cursor.moveToFirst())
        {
            do {
                stringArrayList.add(cursor.getString(0));
            } while (cursor.moveToNext());
        }
    }

最佳答案

只需将 int 书号连接到您的查询,如下所示:

int booknumber= mIntent.getIntExtra("booknumber", 0);
...
Cursor cursor = mDb.rawQuery("select DISTINCT c from t_asv where b=" + booknumber, new String[]{});

更新: 最好使用 PreparedStatement/how to use正如@patrick-hollweck提到的

Writing code like this leaves your app wide open to a sql injection vulnerability and is generally considered a very bad practice

关于java - 如何在从第一个 Activity 收到的 sqlite 查询中传递整数变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55992396/

相关文章:

java - apache httpclient 并生成一个将使用 java 共享 session 的浏览器

android - 如何在标记标题创建后显示几秒钟然后将其删除?

android - 应用内计费安全

android - 在 ListView 中显示之前合并游标中的数据

java - 兼容更改和serialversionUID

java - 执行者未完成所有任务

java - mongo-hadoop 是否支持替换文档?

java - 如何将任何类型的文件从 Assets 文件移动/复制到 JAVA 中的范围存储 ANDROID Q?

Android Room 缓慢迁移竞争条件

java - 将范围内的值插入 sqlite 时显示错误