一、基本概念
sqlLite
1. 数据类型
NULL,
INTEGER,
REAL(浮点数),
TEXT(字符串文本),
BLOB(二进制对象)
2. 特点
SQLite有个最大的特点:
可以将各种数据类型的数据保存到任何字段中而不用关心字段声明的数据类型是什么(除了主键)。
3. 总结
SQlite通过文件来保存数据库,一个文件就是一个数据库,数据库中又包含多个表格,
表格里又有多条记录,每个记录由多个字段构成,每个字段有对应的值,每个值我们
可以指定类型,也可以不指定类型(主键除外)
相关类
SQLiteOpenHelper:
抽象类,通过继承该类,重写数据库创建以及更新的方法, 还可以通过该类的对象获得数据库实例,或者关闭数据库!
SQLiteDatabase:
数据库访问类:可以通过该类的对象来对数据库做一些增删改查的操作
Cursor:
游标,类似于JDBC里的resultset,结果集!可以简单理解为指向数据库中某 一个记录的指针!
一、创建数据库(对表级别的操作)
数据库设置
创建自定义SQLiteOpenHelper类
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, DBConstance.DB_NAME, null, DBConstance.VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(DBConstance.SQL_CREATE_TABLE);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
更新数据库
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
switch(oldVersion){
case 1:
db.execSQL(第一个版本的相关修改的sql语句);
case 2:
db.execSQL(第二个版本的相关修改的sql语句);
case 3:
db.execSQL(第三个版本的相关修改的sql语句);
..........
}
}
总结
对表级别的创建和修改需要通过执行sql语句来实现。
二、对数据库中表的操作
相关API
execSQL(SQL,Object[]):使用带占位符的SQL语句,这个是执行修改数据库内容的sql语句用的
rawQuery(SQL,Object[]):使用带占位符的SQL查询操作
move(offset):指定向上或者向下移动的行数,整数表示向下移动;负数表示向上移动!
moveToFirst():指针移动到第一行,成功返回true,也说明有数据
moveToLast():指针移动到最后一样,成功返回true;
moveToNext():指针移动到下一行,成功返回true,表明还有元素!
moveToPrevious():移动到上一条记录
getCount( )获得总得数据条数
isFirst():是否为第一条记录
isLast():是否为最后一项
moveToPosition(int):移动到指定行
添加数据
public boolean addElement(ImeiBean imeiBean) {
try {
mDatabase = mDbHelper.getWritableDatabase();
mValues = new ContentValues();
mValues.put(DBConstance.COLUMN_IP, imeiBean.getDeviceIp())