Plant 2020-05-17
SQLite的数据库中表的增删改查(下面用添加,删除,更新,查询)
以下关于一些布局的按钮就不贴代码了.
添加代码:SQLiteDatabase中提供了一个insert()方法,它接受三个参数,第一个参数是表名;第二个三叔用于在未指定添加数据的情况下给某些可为空的列自动赋值null;第三个参数是一个ContentValues对象,它提供了一些列的put()方法重载,用于向ContenView中添加数据,只需要将表中的每个列名以及相应的带添加数据传入计科
在MainActivity.class文件中的onCreate()方法中添加 SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name","The Da Vinci Code"); values.put("author","Dan Brown"); values.put("pages",454); values.put("price",16.96); db.insert("Book",null,values); values.clear();
更新数据:跟insert()方法类似,不过是四个参数,第一个是表名;第二个是ContenValues对象,第三,第四个是用于约束更新某一行或几行中的数据,不指定的话默认就是更新所有行.
SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("price",99); db.update("Book",values,"name=?",new String[]{"The Da Vinci Code"})
删除数据:delete(),第一个参数是表名,第二个,第三个参数又是用于约束删除某一行或某几行的数据,不指定的话默认就是删除所有行.
SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("Book","pages > ?",new String[]{"500"});
查询数据:查询时比较复杂的,里面的参数也是最多的,第一参数还是表名,第二个参数用于指定去查询那激烈.如果没指定,就查询所有列,第三第四个参数用于约束查询某一行或某几行的数据,不指定查询所有数据,第五个参数用于指定需要去group by的列,不指定不执行group by操作,第六个参数用于对group by之后的数据进行进一步的过滤,不指定不过滤,第七个参数用于指定查询结果的排序方式,不指定则表示使用默认的排序方式
SQLiteDatabase db= dbHelper.getWritableDatabase(); //查询Book表中所有的数据 Cursor cursor = db.query("Book",null,null,null,null,null,null); if (cursor.moveToFirst()){ do{ //遍历Cursor对象,取出数据并打印 String name =cursor.getString(cursor.getColumnIndex("name")); String author = cursor.getString(cursor.getColumnIndex("author")); int pages = cursor.getInt(cursor.getColumnIndex("pages")); double price = cursor.getDouble(cursor.getColumnIndex("price")); Log.d("MainActivity","book name is"+name); Log.d("MainActivity","book author is"+author); Log.d("MainActivity","book pages is"+pages); Log.d("MainActivity","book price is"+price); }while(cursor.moveToFirst()); } cursor.close();
Cursor相当于游标,是每行的集合,使用moveTofirst()定位第一行,你必须知道每一列的数据类型,
Tip:在Android 查询数据是通过Cursor 类来实现的。当我们使用 SQLiteDatabase.query()方法时,就会得到Cursor对象, Cursor所指向的就是每一条数据。