import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.geoquiz.yjx229050239.bean.Question; import java.util.ArrayList; import java.util.List; public class DBTool { private Context context; private String questionTable = "question"; public DBTool(Context context) { this.context = context; } public List<Question> selQuestion() { SQLiteDatabase writableDatabase = new JdbcTool(context).getWritableDatabase(); Cursor cursor = writableDatabase.query(questionTable, null, null, null, null, null, null, null); List<Question> questionList = new ArrayList<>(); if (cursor.getCount() <= 0) { return null; } cursor.moveToFirst(); for (int i = 0; i < cursor.getCount(); i++) { int id = cursor.getInt(0); String name = cursor.getString(1); String answer = cursor.getString(2); questionList.add(new Question(id, name, answer)); cursor.moveToNext(); } cursor.close(); writableDatabase.close(); return questionList; } public boolean insQuestion(Question question) { ContentValues values = new ContentValues(); values.put("name", question.getName()); values.put("answer", question.getAnswer()); long index = new JdbcTool(context).getWritableDatabase().insert(questionTable, null, values); return index > 0; } }解释这段代码
时间: 2024-04-27 20:21:34 浏览: 125
Android保存数据的四种方法[借鉴].pdf
这段代码是一个用于操作 SQLite 数据库的工具类 DBTool,其中包含了查询和插入问题的方法。在查询问题的方法 selQuestion() 中,先通过传入的 Context 对象获取数据库的可写实例,然后执行查询操作,将查询到的每一条数据转换成一个 Question 对象,并添加到一个 List 集合中,最后返回该集合。在插入问题的方法 insQuestion() 中,先将传入的 Question 对象的数据封装到 ContentValues 对象中,然后通过获取数据库的可写实例并执行插入操作,最后返回插入是否成功的结果。这段代码主要使用了 Android SDK 中提供的 SQLiteDatabase 类和 ContentValues 类来实现与 SQLite 数据库的交互。
阅读全文