什么是SQLite?
SQLite是安卓中的轻量级内置数据库,不需要设置用户名和密码就可以使用。资源占用较少,运算速度也比较快。
SQLite支持:null(空)、integer(整形)、real(小数)、text(文本)|String(文本)|varchar(文本)、blob(二进制)这5种数据类型。
如何使用SQLite数据库?
在这之前先介绍一下SQLiteOpenHelper类。该类是安卓为了让用户方便管理数据库而提供的一个数据库帮助类。我们需要借助这个类来实现对数据的创建(也就是用户需要自己创建一个类来继承SQLiteOpenHelper类。比如自己创建类:MyDBOpenHelper)。
第一步:创建一个MyDBOpenHelper类继承SQLiteOpenHelper类。
1.在安卓目录模式下,找到包该APP的包,接着右键选择新建,接着创建一个包(比如:DB)。
2.选中DB包,接着右击选择新建类,创建一个 MyDBOpenHelper类。
3.在MyDBOpenHelper类中写继承SQLiteOpenHelper类。
4.将鼠标放在红色波浪线上,按Alt+Enter组合键解决该报错问题(由于SQLiteOpenHelper类是抽象类,所以需要在该类添加两个抽象方法)。
5.将鼠标继续放在红色波浪线上,按Alt+Enter组合键解决(添加帮助类的构造方法,选择参数少的第一种)。
该种构造方法的参数:参数1为Context;参数2为数据库名;参数3为在查询数据的时候返回自定义的Cursor,一般都是传入null;参数4为数据库版本号。
二、定义数据库名称和数据库版本号。
在实际的过程中只保留第一个参数,后3个参数删除,并定义数据库名称和版本,修改一下代码即可,具体如下:
这里定义了数据库名为:student.db,数据库版本为1。
在安卓中数据库的保存位置在:/data/data/工程的包名/databases/
三、定义建表语句。(创建数据表)
1.找到onCreate方法
2.在onCreate方法中写创建数据表的语句。
在此方法中调用SQLiteDatabase的execSQL()方法去执行创建数据表。
如创建学生信息表stu_info 表中包含字段名(列名):学号 姓名 性别
sql
sqLiteDatabase.execSQL("create table stu_info(id INTEGER primary key autoincrement,sno varchar(10),name varchar(10),sex varchar(10))");
四、添加数据(insert方法)。
这里我们借助SQLiteDatabase对象来对数据库进行增、删、查、改。
大致分为六步:
//1.定义数据库帮助类对象
//2.定义一个可以操作数据库的对象
//3.实例化数据库帮助类
//4.打开数据库的写权限
//5.创建一个Content Values对象并通过put方法来保存一行数据(其中put方法两个参数:字段名,值)
//6.使用insert方法实现添加数据
inset()方法语法:
insert("表名","在没指定添加数据的情况下将为空的列自动设置为NULL","Content Values对象")
其中Content Values对象用来保存表中一行数据。第二个参数一般用不到设置为null即可。
综上所述,可以以一下代码来表示这六步(这里是在主页面类):
上面在主页面的代码表示一运行APP就会向数据库中添加信息。put方法中写的字段的值是从控件中获取的(这里没有写控件所以会报错)。具体使用方法可以根据这个类推。比如点击一个按钮时执行添加向数据库中添加数据。
五、删除数据(delete方法)。
这里我们借助SQLiteDatabase对象来对数据库进行增、删、查、改。
大致分为五步:
//1.定义数据库帮助类对象
//2.定义一个可以操作数据库的对象
//3.实例化数据库帮助类
//4.打开数据库的写权限
//5.使用delete方法实现删除数据
delete()方法语法:
delete("表名","条件=?","?占位符所代表的条件的取值")
例如删除id字段等于12的一行数据:delete("表名","id=?",new String[]{"12"})
综上所述,可以以一下代码来表示这五步(这里是在主页面类):
上面在主页面的代码表示一运行APP就会删除数据库中id=12的数据。具体使用方法可以根据这个类推。比如点击一个按钮时删除数据。或者这个条件的值(这里指12)可以来源于输入框控件等。
六、查询数据(rawQuery方法)。
这里我们借助SQLiteDatabase对象来对数据库进行增、删、查、改。
大致分为五步:
//1.定义数据库帮助类对象
//2.定义一个可以操作数据库的对象
//3.实例化数据库帮助类
//4.打开数据库的读权限
//5.使用rawQuery方法实现查询数据并通过moveToNext()遍历结果后取出数据,最后通过set方式给用于显示查询结果的控件赋值显示出来。
rawQuery方法语法:
rawQuery("查询语句......where=?","?占位符所代表的条件的取值")
例如查询id字段等于12的一行数据:rawQuery("select * from stu_info where id=?",new String[]{"12"})
综上所述,可以以一下代码来表示这五步(这里是在主页面类):
上面在主页面的代码表示一运行APP就查询数据库中id=12的数据。具体使用方法可以根据这个类推。比如点击一个按钮时查询数据。或者这个条件的值(这里指12)可以来源于输入框控件等。(红色波浪线报错用Alt+Enter解决即可)
七、修改数据(update方法)。
这里我们借助SQLiteDatabase对象来对数据库进行增、删、查、改。
大致分为五步:
//1.定义数据库帮助类对象
//2.定义一个可以操作数据库的对象
//3.实例化数据库帮助类
//4.打开数据库的写权限
//5.创建一个Content Values对象并通过put方法来保存一行数据(其中put方法两个参数:字段名,值)
//6.使用updata方法实现添加数据
updata方法语法:
updata("表名",Content Values对象,"条件=?","?占位符所代表的条件的取值")
例如修改name字段等于张三的一行数据:updata("表名",Content Values对象,"name=?",new String[]{"张三"})
综上所述,可以以一下代码来表示这六步(这里是在主页面类):
上面在主页面的代码表示一运行APP就修改数据库中name为张三的性别为控件获取来的值。具体使用方法可以根据这个类推。比如点击一个按钮时修改数据。