1.Android数据库的创建,继承SqliteOpenHelper
public
class
DatabaseHelper
extends
SQLiteOpenHelper {
private
static
final
String DB_NAME =
"mydata.db"
;
//数据库名称
private
static
final
int
version =
1
;
//数据库版本
public
DatabaseHelper(Context context) {
super
(context, DB_NAME,
null
, version);
// TODO Auto-generated constructor stub
}
@Override
public
void
onCreate(SQLiteDatabase db) {
String sql =
"create table user(username varchar(20) not null , password varchar(60) not null );"
;
db.execSQL(sql);
}
@Override
public
void
onUpgrade(SQLiteDatabase db,
int
oldVersion,
int
newVersion) {
// TODO Auto-generated method stub
}
}
2.SqliteOpenHelper帮助类的介绍
用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。
其中getReadableDatabase()和getWritableDatabase()都是用来生成一个数据库操作类的实例,两者生成的对象都可以对数据库进行读写的操作,区别在于当磁盘满了的时候read还可以继续以只读方式打开数据库进行访问,而write则会报错
1
2
3
|
DatabaseHelper database =
new
DatabaseHelper(
this
);
//这段代码放到Activity类中才用this
SQLiteDatabase db =
null
;
db = database.getReadalbeDatabase();
|
3.关于SqliteOpenHelper和SqliteDatabase之间的关系
SqliteDatabase没有提供构造函数,不能直接使用,需要通过SqliteOpenHelper.getReadalbeDatabase()两种方法获取到实例
使用Context.openOrCreateDatabase 与 SQLiteDatabase.openOrCreateDatabase两者都可以进行数据库的创建
4.数据库的增删改查操作
数据的添加
1.使用insert方法
1
2
3
|
ContentValues cv =
new
ContentValues();
//实例化一个ContentValues用来装载待插入的数据cv.put("username","Jack Johnson");//添加用户名
cv.put(
"password"
,
"iLovePopMusic"
);
//添加密码
db.insert(
"user"
,
null
,cv);
//执行插入操作
|
2.使用execSQL方式来实现
1
2
|
String sql = "insert into user(username,password) values (
'Jack Johnson'
,
'iLovePopMuisc'
);
//插入操作的SQL语句
db.execSQL(sql);
//执行SQL语句
|
数据的删除
同样有2种方式可以实现
1
2
3
|
String whereClause =
"username=?"
;
//删除的条件
String[] whereArgs = {
"Jack Johnson"
};
//删除的条件参数
db.delete(
"user"
,whereClause,whereArgs);
//执行删除
|
使用execSQL方式的实现
1
2
|
String sql =
"delete from user where username='Jack Johnson'"
;
//删除操作的SQL语句
db.execSQL(sql);
//执行删除操作
|
数据修改
同上,仍是2种方式
1
2
3
4
5
|
ContentValues cv =
new
ContentValues();
//实例化ContentValues
cv.put(
"password"
,
"iHatePopMusic"
);
//添加要更改的字段及内容
String whereClause =
"username=?"
;
//修改条件
String[] whereArgs = {
"Jack Johnson"
};
//修改条件的参数
db.update(
"user"
,cv,whereClause,whereArgs);
//执行修改
|
使用execSQL方式的实现
1
2
|
String sql =
"update [user] set password = 'iHatePopMusic' where username='Jack Johnson'"
;
//修改的SQL语句
db.execSQL(sql);
//执行修改
|