public List<Note> getAllNotes(){ Cursor cursor = db.query(NoteDatabase.TABLE_NAME, columns, null, null, null, null, null); List<Note> notes = new ArrayList<>(); if (cursor.getCount() > 0){ while (cursor.moveToNext()){ Note note = new Note(); note.setId(cursor.getLong(cursor.getColumnIndexOrThrow(NoteDatabase.ID))); note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(NoteDatabase.CONTENT))); note.setTime(cursor.getString(cursor.getColumnIndexOrThrow(NoteDatabase.TIME))); note.setTag(cursor.getInt(cursor.getColumnIndexOrThrow(NoteDatabase.MODE))); notes.add(note); } } return notes; } public int updateNote(Note note) { //update the info of an existing note ContentValues values = new ContentValues(); values.put(NoteDatabase.CONTENT, note.getContent()); values.put(NoteDatabase.TIME, note.getTime()); values.put(NoteDatabase.MODE, note.getTag()); //updating row return db.update(NoteDatabase.TABLE_NAME, values, NoteDatabase.ID + "=?", new String[] { String.valueOf(note.getId())}); } public void removeNote(Note note){ //remove a note according to ID value db.delete(NoteDatabase.TABLE_NAME, NoteDatabase.ID + "=" + note.getId(), null); } }这里运用了哪些技术
时间: 2024-04-05 09:34:28 浏览: 114
这段代码同样运用了Android平台的SQLite数据库技术,实现了对数据库的增删改查操作。具体来说,使用了SQLiteDatabase类的query()方法实现查询操作,使用了List和ArrayList类实现数据列表的存储和管理。updateNote()方法使用ContentValues类实现数据的更新操作,removeNote()方法使用db.delete()方法实现数据的删除操作。此外,还使用了常量、数组和Java集合等基础知识。
相关问题
public class CRUD { SQLiteOpenHelper dbHandler; SQLiteDatabase db; private static final String[] columns = { NoteDatabase.ID, NoteDatabase.CONTENT, NoteDatabase.TIME, NoteDatabase.MODE }; public CRUD(Context context) { dbHandler = new NoteDatabase(context); } public void open(){ db = dbHandler.getWritableDatabase(); } public void close(){ dbHandler.close(); } //把note 加入到database里面 public Note addNote(Note note){ //add a note object to database ContentValues contentValues = new ContentValues(); contentValues.put(NoteDatabase.CONTENT, note.getContent()); contentValues.put(NoteDatabase.TIME, note.getTime()); contentValues.put(NoteDatabase.MODE, note.getTag()); long insertId = db.insert(NoteDatabase.TABLE_NAME, null, contentValues); note.setId(insertId); return note; } public Note getNote(long id){ //get a note from database using cursor index Cursor cursor = db.query(NoteDatabase.TABLE_NAME, columns, NoteDatabase.ID + "=?", new String[] {String.valueOf(id)}, null, null, null, null); if (cursor != null) cursor.moveToFirst(); Note e = new Note(cursor.getString(1), cursor.getString(2), cursor.getInt(3)); return e; } 这里运用了哪些技术
这段代码运用了Android平台的SQLite数据库技术,通过SQLiteOpenHelper类和SQLiteDatabase类实现对数据库的操作。其中,SQLiteDatabase类提供了插入、查询等数据库操作方法,ContentValues类用于封装数据,Cursor类用于遍历查询结果。此外,还使用了常量和数组等Java基础知识。
下面代码的意思 private void queryTitle() { Cursor cursor1= mDatabase.rawQuery("select count(2) from "+DBHelper.TABLE_NAME,null); cursor1.moveToFirst(); long count = cursor1.getLong(0); int num=(int) count; title=new String[num]; id=new int[num]; cursor1.close(); Cursor cursor; cursor = mDatabase.query(DBHelper.TABLE_NAME,DBHelper.TABLE_COLUMNS,null,null,null,null,null); int i=0; while (cursor != null && cursor.moveToNext()) { id[i]=cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_ID)); title[i]=cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_TITLE)); i+=1; } cursor.close(); } class MyBaseAdapter extends BaseAdapter { @Override public int getCount() { Cursor cursor= mDatabase.rawQuery("select count(2) from "+DBHelper.TABLE_NAME,null); cursor.moveToFirst(); long count = cursor.getLong(0); cursor.close(); int num=(int)count; return num; }
这段代码是在 Android 应用程序中对数据库进行查询,并将查询结果显示在 ListView 中。在 queryTitle() 方法中,首先查询数据库中的记录总数,然后根据总数创建一个对应大小的字符串数组和整型数组。接着,使用 query() 方法查询数据库中的所有记录,并将记录的 id 和 title 分别存储在 id 数组和 title 数组中。最后,关闭游标 cursor。
在 MyBaseAdapter 类中,重写了 getCount() 方法。该方法返回数据库中记录的总数。在 getCount() 方法中,先查询数据库中的记录总数,然后关闭游标 cursor,并将记录总数转换为 int 类型并返回。
顺便提一下,该程序使用了自定义的 MyBaseAdapter 类继承自 BaseAdapter 类,并且在 ListView 中使用 MyBaseAdapter 对象进行渲染。该自定义 Adapter 类负责将查询结果显示在 ListView 中。
阅读全文