java - 如何使用 beans 将值插入到 sqlite 数据库中并将这些表值检索到 json 数组中

标签 java android json sqlite

使用 bean 将值插入表

public static void addGetAssessmentDetail(Context context,
        GetAssessmentBean getassessmentDetail) {
    DBHelper dbHelper = null;
    SQLiteDatabase sqlDBRead = null;
    SQLiteDatabase sqlDBWrite = null;
    try {

        dbHelper = new DBHelper(context, LektzDB.DB_NAME, null,
                LektzDB.DB_VERSION);
        sqlDBRead = dbHelper.getReadableDatabase();
        sqlDBWrite = dbHelper.getWritableDatabase();

        ContentValues book = new ContentValues();       
        book.put(TB_FinalAssessmentValues.CL_1_ID, getassessmentDetail.getId());
        book.put(TB_FinalAssessmentValues.CL_2_USER_ID , getassessmentDetail.getUser_id());
        book.put(TB_FinalAssessmentValues.CL_3_BOOK_ID, getassessmentDetail.getBook_id());
        book.put(TB_FinalAssessmentValues.CL_4_CHAPTER_ID,
                getassessmentDetail.getChapter_id());
        book.put(TB_FinalAssessmentValues.CL_5_QUESTION_TYPE,
                getassessmentDetail.getQuestion_type());
        book.put(TB_FinalAssessmentValues.CL_6_QUESTION_ID,
                getassessmentDetail.getQuestion_id());
        book.put(TB_FinalAssessmentValues.CL_7_OPTION_ID,
                getassessmentDetail.getOption_id());
        book.put(TB_FinalAssessmentValues.CL_8_MARK,
                getassessmentDetail.getMark());
        book.put(TB_FinalAssessmentValues.CL_9_NOTES,
                getassessmentDetail.getNotes());
        book.put(TB_FinalAssessmentValues.CL_10_MATCH_OPTION, getassessmentDetail.getMatchOption());
        book.put(TB_FinalAssessmentValues.CL_11_DRAG_VALUES,
                getassessmentDetail.getDragValues());
        book.put(TB_FinalAssessmentValues.CL_12_ADDED_TIME,
                getassessmentDetail.getAdded_time());       
        Log.i("", "assessment values insertion success" );


    } catch (Exception e) {
        e.printStackTrace();
    }

}

并尝试将这些表值检索到 JSON 数组中

public JSONArray getFullAssessmentData(Context mContext, String bookid,
        int UserId) {
    DBHelper dbh = new DBHelper(mContext, LektzDB.DB_NAME, null,
            LektzDB.DB_VERSION);
    SQLiteDatabase db = dbh.getReadableDatabase();
    JSONArray resultSet = new JSONArray();
    try {
        Cursor c = db.rawQuery("SELECT * FROM " + TB_FinalAssessmentValues.NAME
                + " WHERE " + TB_FinalAssessmentValues.CL_3_BOOK_ID+ "='"+ bookid + "'", null);
        Log.i("tag", "msg vachindi");

        if (c.getCount() > 0) {

            c.moveToFirst();
            do {
                c.moveToFirst();
                while (c.isAfterLast() == false) {
                    int totalColumn = c.getColumnCount();
                    JSONObject rowObject = new JSONObject();   
                    for (int i = 0; i < totalColumn; i++) {
                        if (c.getColumnName(i) != null) {
                            try {
                                rowObject.put(c.getColumnName(i),
                                        c.getString(i));
                            } catch (Exception e) {
                            }
                        }
                    }
                    resultSet.put(rowObject);
                    c.moveToNext();
                }

                c.close();
                db.close();
                    }
             while (c.moveToNext());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return resultSet;
}

最后尝试将这些值存储到 JSON 数组中

JSONArray fullassessmentjson =  rdb.getFullAssessmentData( getContext(), BookId, UserId);
                    Log.i("Tag123456","Finalcheck"+fullassessmentjson);

数据库助手

db.execSQL("CREATE TABLE IF NOT EXISTS " + TB_FinalAssessmentValues.NAME + "(" 
                + TB_FinalAssessmentValues.CL_1_ID + " TEXT, "
                + TB_FinalAssessmentValues.CL_2_USER_ID  + " TEXT, "
                + TB_FinalAssessmentValues.CL_3_BOOK_ID + " TEXT, "
                + TB_FinalAssessmentValues.CL_4_CHAPTER_ID + " TEXT, "
                + TB_FinalAssessmentValues.CL_5_QUESTION_TYPE + " TEXT, "
                + TB_FinalAssessmentValues.CL_6_QUESTION_ID + " TEXT, "
                + TB_FinalAssessmentValues.CL_7_OPTION_ID + " TEXT, "
                + TB_FinalAssessmentValues.CL_8_MARK + " TEXT, "
                + TB_FinalAssessmentValues.CL_9_NOTES + " TEXT, "
                + TB_FinalAssessmentValues.CL_10_MATCH_OPTION + " TEXT, "
                + TB_FinalAssessmentValues.CL_11_DRAG_VALUES + " TEXT, "
                + TB_FinalAssessmentValues.CL_12_ADDED_TIME + " TEXT)");

错误是它在 Json 数组中没有显示任何内容

最佳答案

似乎您正在将值添加到 ContentValues 对象中,但并未执行实际插入数据库的操作。

(因此,您基本上是在查询一个空表)

您应该在 addGetAssessmentDetail() 末尾调用 SQLiteDatabaseinsert() 方法将数据插入到表中:

sqlDBWrite.insert(TABLE_TO_INSERT, null, book);

关于java - 如何使用 beans 将值插入到 sqlite 数据库中并将这些表值检索到 json 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38911783/

相关文章:

java - 如何使方法接受任何对象并检查它是否包含方法?

java - 如何克隆 Joda DateTime?

json - 确定 JSON 解析错误的位置

javascript - 无法使用nodejs访问json对象的属性

json - 带有 Spring Boot REST Controller 和 JSON 的空字段

java - AXIS2 轴故障 : this is a soap-encoded endpoint

java - 如何展平 HashMap?

java - 使用用户设置自定义光标 Java

java - Android HtmlCompat.fromHtml() 创建 Spanned 后如何停止 EditText 显示 javascript

android - 如何获取 listView 的特定 TextView 的所有值? -安卓