如何在sqlite android中插入多行

2024-03-13

我有一种方法可以将值插入到sqlite在一个班级里。在主要活动中,我正在解析 json 值并尝试将这些值插入到sqlite在循环中,因为我必须插入不止一行。但只有一行被添加到数据库中。

添加多行的方法如下:

public void addSession(String sessionname,String start_time,String end_time,String id) {
        SQLiteDatabase db = this.getWritableDatabase();
        try {
            db.beginTransaction();
            String sql = "Insert into session (id, sessionname,start_time, end_time) values(?,?,?,?)";
            SQLiteStatement insert = db.compileStatement(sql);
            insert.bindString(1, id);
            insert.bindString(2, sessionname);
            insert.bindString(3, start_time);
            insert.bindString(4, end_time);
            insert.execute();
            db.setTransactionSuccessful();
        } catch (Exception e) {
            Log.w("Appet8:",e );
        } finally {
         db.endTransaction();
        }
    }

在下面的 for 循环中,我尝试将值添加到 sqlite 表中:

JSONObject jsonObject = new JSONObject(response);
JSONArray foodsessions = jsonObject.getJSONArray("foodsessions");
for(int i=0;i<foodsessions.length();i++) {
                   JSONObject session_object = foodsessions.getJSONObject(i);
                   String session = session_object.getString("sessionname");
                   String start_time = session_object.getString("start_time");
                   String end_time = session_object.getString("end_time");
                   String session_id = session_object.getString("id");                                
 db.addSession(session,start_time,end_time,session_id);
                       }                       

更好的结构是在方法外部创建一个数据库引用,并将其作为引用传递:

SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();

// your for loop

db.setTransactionSuccessful();
db.endTransaction();

============= 请检查以下用于插入多行的命令:

// adb is SQLiteOpenHelper
JSONObject jsonObject = new JSONObject(response);
JSONArray foodsessions = jsonObject.getJSONArray("foodsessions");
int length = foodsessions.length();

for (int i = 0; i < length; i++) {
    JSONObject o = foodsessions.getJSONObject(i);
    String session = session_object.getString("sessionname");
    String start_time = session_object.getString("start_time");
    String end_time = session_object.getString("end_time");
    String session_id = session_object.getString("id");    

    SQLiteDatabase db = adb.getWritableDatabase();

    ContentValues newValues = new ContentValues();
    newValues.put(adb.ATTRIBUTE_session, session);
    newValues.put(adb.ATTRIBUTE_start_time, start_time);
    newValues.put(adb.ATTRIBUTE_end_time, end_time);
    newValues.put(adb.ATTRIBUTE_session_id, session_id);

    long res = db.insertWithOnConflict(adb.TABLE_NAME, null, newValues, SQLiteDatabase.CONFLICT_REPLACE);
    db.close();
}

更好的解决方案是避免使用原始查询(如果可以通过以下提供的方法完成)SQLiteDatabase.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在sqlite android中插入多行 的相关文章

  • MySQL JOIN 滥用?情况会变得有多糟糕?

    我读了很多关于关系数据库的文章 在每个 SELECT 上使用许多 JOIN 语句 但是 我一直想知道滥用这种方法从长远来看是否会出现任何性能问题 例如 假设我们有一个users桌子 我通常会添加 最常用 的数据 而不是进行任何额外的联接 例
  • 接近语法错误(代码1)插入Android SQLite

    我正在创建一个通讯录应用程序 用户可以在其中输入姓名 电子邮件地址和号码 我希望将此数据保存在数据库中 但我似乎无法使插入方法起作用 我收到的错误是 android database sqlite SQLiteException near
  • 无法在自定义 AOSP 上安装 Google Play 中的某些应用程序:项目不可用。理由:9

    我在尝试从 Google Play 安装某些应用程序时收到以下错误 LibraryUtils isAvailable not available restriction 9 DocUtils getAvailabilityRestricti
  • 如果我们使用后退按钮退出,为什么 Android 应用程序会重新启动?

    按住主页按钮并返回应用程序时 应用程序不会重新启动 为什么使用后退按钮会重新启动 如果我们使用后退按钮退出 有什么方法可以解决在不重新启动的情况下获取应用程序的问题吗 请帮忙 当您按下Home按钮 应用程序将暂停并保存当前状态 最后应用程序
  • 在 Google Analytics 中跟踪应用程序版本

    我正在使用谷歌分析模块 https marketplace appcelerator com apps 5081 2014113336 https marketplace appcelerator com apps 5081 2014113
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • 如何在 sqlite 中将 2 列合并为新列

    我有一个包含 3 列的表 我必须将 2 列中的值按降序排列到一列中 A B C z 1 2 f 5 7 s 9 5 使用此示例 输出会将 B 列和 C 列中的值放入其中 如下所示 A B s 9 f 7 f 5 s 5 z 2 z 1 我当
  • 应用程序未安装在 Android 模拟器上

    我正在 android Geocoder 中开发一个应用程序 当我运行该应用程序时 它会显示 2011 01 11 11 08 13 GeoTourProject 自动目标模式 使用现有模拟器 emulator 5554 运行兼容的 AVD
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 当手机旋转(方向改变)时如何最好地重新创建标记/折线

    背景 开发一个使用 Android Google Map v2 的本机 Android 应用程序 使用android support v4 app FragmentActivity 在 Android v2 2 上运行 客观的 在更改手机方
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI
  • 无法连接到 MAMP 上的 phpMyAdmin

    我收到此错误消息 MySQL 说道 无法连接 设置无效 phpMyAdmin 尝试连接 MySQL 服务器 但服务器拒绝连接 您应该检查配置中的主机 用户名和密码 并确保它们与 MySQL 服务器管理员提供的信息相对应 用户和通行证是默认的
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重

随机推荐

  • 使用 JPA 的 select 子句中的 Suqueries

    我需要使用 Apache Openjpa 2 在 select 子句中执行子查询 JPA 是否支持 SELECT 子句中的子查询 我的查询是这样的 SELECT t date t value SELECT COUNT DISTINCT t2
  • Signalr - 无法读取服务器上的查询字符串

    我在这里要疯了 我完成了 chatHub 教程 一切正常 我连接到服务器 我可以向每个客户广播一条消息 然后我尝试添加查询字符串 因为我想获得有关我的用户的一些信息 因为许多用户可以在同一会话中连接 这是我的 JavaScript func
  • 是否可以制作交互式 Rake 任务?

    我想运行一个要求用户输入的 Rake 任务 我知道我可以在命令行上提供输入 但我想询问用户是否sure他们希望继续执行特定操作 以防错误输入提供给 Rake 任务的值之一 像这样的东西可能会起作用 task action do STDOUT
  • 使用 Bash 变量代替文件作为可执行文件的输入

    我有一个可执行文件 其使用方式如下 executable v i inputFile txt o outputFile eps 为了提高效率 我想使用 Bash 变量代替输入文件 所以 我想做如下的事情 executable v i inp
  • jQuery 将 Google Adsense 附加到 div

    我遇到了 google adsense 的问题 它在我的 jQuery 之前加载并杀死了我的代码 所以我想我应该尝试使用文档准备功能将 Google Adsense javascript 附加到适当的 div 这是我尝试的代码写
  • 如何更改 TYPO3 中的页眉布局(添加一些换行 div)

    您好 我需要更改 TYPO3 中的标题布局 下图 我正在使用流体模板系统 我还找到了可以更改它的 html 文件 该文件的原始路径是 typo3 src 7 6 16 typo3 sysext fluid styled content 资源
  • Laravel 5.5 尝试使用 PHP 的 mail() 发送邮件时出错:预期响应代码 250,但得到代码“550”

    我已将站点升级到 Laravel 5 5 突然我无法再发送邮件 因为它给了我以下错误 Production ERROR 预期响应代码 250 但得到代码 550 其中 消息 550 未经过身份验证 请启用 SMTP 身份验证 电子邮件软件和
  • 使用 GCS 客户端库模拟云存储的 GAE java 上的文件 uri 是什么?

    我正在使用 Java 的 Google 应用程序引擎开发一个 Web 应用程序 我将使用 Google Cloud 存储并根据文档 https developers google com appengine docs java google
  • c getline 跳过空行

    while getline line line size f 1 I m using this function to read line line But i want to know when i m reading a blank l
  • c char 指针问题

    如果我们声明char p hello 那么由于它被写入数据部分 我们无法修改p指向的内容 但我们可以修改指针本身 但我在 C Traps and Pitfalls 中找到了这个例子 安德鲁 科尼格 AT T贝尔实验室 默里山 新泽西州 07
  • 获取 Instagram 上用户的性别

    我只是想知道是否有办法在 Instagram 上获取用户的性别 我浏览了 Instagram 的 api 从 users userId 获取的用户信息不包含性别信息 感谢您的帮助 NO 目前还没有办法从API获取instagram用户的性别
  • UTF-8 文本(印地语)未显示在浏览器窗口或 Eclipse 控制台上

    我必须在浏览器屏幕上显示印地语 或任何区域语言 的文本 我将从数据库中获取此文本 为此 我从以下几个方面开始 String escapedStr u0905 u092d u0940 u0938 u092e u092f u0939 u0948
  • 在Python中找到分数列表的最小公分母

    我有一个分数列表 from fractions import Fraction fractions list Fraction 3 14 Fraction 1 7 Fraction 9 14 输出应该是一个列表 其中包含每个分数的分子 最后
  • React - 将所有数据从 json 加载到组件中

    我正在使用 React 并尝试将数据从本地 json 文件加载到我的组件中 我试图打印所有信息 包括名称 值对中的 名称 不仅仅是值 使其看起来像一个表单 我正在寻找最好的方法来做到这一点 我需要解析吗 我需要使用地图功能吗 我是 Reac
  • 在 PHP 中获取数组的最后一个元素而不更改数组? [复制]

    这个问题在这里已经有答案了 array pop 将其从数组中删除 end 改变内部指针 唯一的方法真的像这样 my array array pop array keys my array 这有效 list end array slice a
  • 如何检查 window.external 上是否存在函数

    如何检查 window external 上是否存在函数 我正在从 javascript 调用 C 代码 并且想检查 C 对象中是否存在方法 我找到了路 只需使用 in 运算符 如下所示 if FunctionName in window
  • 元组的串联

    普通文本 我在 python 3 2 1 上编码时遇到一些问题 实际上我正在参加有关 python 2 5 的在线讲座 这是代码 x 100 divisors for i in range 1 x if x i 0 divisors div
  • 在 bash shell 中打印星号(“*”)

    a 5 echo aMin bash etc init d ckDskCheck sh 当我尝试运行以下代码时 它会正确显示 5 bash etc init d ckDskCheck sh 但是 当我尝试使用以下代码将结果分配给变量并将其打
  • 快速使用未解析的标识符“UIApplicationStateInactive”

    在我处理推送通知的 Swift 代码中 我有这一行 if application applicationState UIApplicationStateInactive application applicationState UIAppl
  • 如何在sqlite android中插入多行

    我有一种方法可以将值插入到sqlite在一个班级里 在主要活动中 我正在解析 json 值并尝试将这些值插入到sqlite在循环中 因为我必须插入不止一行 但只有一行被添加到数据库中 添加多行的方法如下 public void addSes