开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情
调用MyDatabaseHelper类完成表的创建
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)
dbHelper.writableDatabase
}
}
(2)升级数据库
把
val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)
改为
val dbHelper=MyDatabaseHelper(this,"BookStore.db",2)
表示数据库升级
(3)添加数据
insert():专门用于添加数据。
第一个参数:表名
第二个参数:用于在未指定添加数据的情况下给某些可为空的列自动赋值给NULL,一般用不到这个功能,传入null即可。
第三个参数:ContentValues对象
步骤
获取SQLiteDatabase对象
val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)
val db=dbHelper.writableDatabase
使用ContentValues对要添加的数据进行组装
val values1=ContentValues().apply {
put("name","The Da Vinci Code")
put("author","Dan Brown")
put("pages",454)
put("price",16.96)
}
调用insert()方法将数据添加到表中
db.insert("Book",null,values1)
(4)更新数据
updata():对数据进行更新。
参数:第一个参数:表名,指定更新哪张表的数据。
第二个参数:ContentValues对象,要把更新数据在这里组装进去。
第三、四个参数:用于约束更新某一行或某几行的数据,不指定的话默认会更新所有行。
步骤
获取SQLiteDatabase对象
val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)
val db=dbHelper.writableDatabase
构建ContentValues对象,并且给它指定一组数据,说明把价格这一系列的数据更新成10.99。
val values=ContentValues()
values.put("price",10.99)
调用SQLiteDatabase的updata()执行具体的更新操作。
db.update("Book",values,"name=?", arrayOf("The Da Vinci Code"))
(5)删除数据
delete()方法:专门用于删除数据。
第一个参数:表名
第二、三个参数:用于约束删除某一行或者某几行的数据,不指定的话会默认删除所有行。
val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)
val db=dbHelper.writableDatabase
db.delete("Book","pages>?", arrayOf("500"))
(6)查询数据
步骤
获取SQLiteDatabase对象
val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)
val db=dbHelper.writableDatabase
调用query()方法后会返回一个Cursor对象,查询到的所有数据都可以从这个对象中取出。
val cursor=db.query("Book",null,null,null,null,null,null)
//查询完后获得一个Cursor对象,接着我们调用它的moveToFirst()方法,
//将数据的指针移动到第一行的位置,
//然后进入一个循环当中,去遍历查询到的每一行数据
if(cursor.moveToFirst()){
do{
val name=cursor.getString(cursor.getColumnIndex("name"))
val author=cursor.getString(cursor.getColumnIndex("author"))
val pages=cursor.getInt(cursor.getColumnIndex("pages"))
val 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.moveToNext())
}
cursor.close()
4、使用SQL操作数据库
使用SQL来完成前面学过的CRUD操作。
添加数据:
db.execSQL("insert into Book(name, author, pages, price) values(?,?,?,?)",
array0f("The Da Vinci Code","Dan Brown","454","16.96")
)
db.execSQL("insert into Book(name, author, pages, price) values(?,?,?,?)",
array0f("The Lost Symbol","Dan Brown","510","19.95")
)
更新数据:
db.execSQL("update Book set price=? where name=?",array0f("10.99","The Da Vinci Code"))
删除数据:
db.execSQL("delete from Book where pages>?",array0f("500"))
查询数据:
val cursor=db.rawQuery("select*from Book", null)