参考链接
http://blog.csdn.net/liuhe688/article/details/6715983
学习SQLite数据库之前,先去学习数据库中的增删改查语句,以前用工具创建表,表字段,那么请重新学习SQLite,它是和数据库操作差不多,不过它轻量级的,很多事情是做不了的。下面事几个简单的语句:
create table user(id INTEGER primary key autoincrement,username char(20),userpwd char(20));
select * from user where id = 2;
update user set username = 'ice' where id = 2;
insert into(username,userpwd) values('li','123456');
delete from user where id = 2;
上面事一些基本的语句,需要详细了解的,可以去网络上查找相关知识。
接下来介绍一些如何操作数据库呢?
第一点,SQLite嵌入式的,轻量级的数据库,它已经放在了android手机上,并不是像后台需要去链接数据库。SQLite将存储的信息放入到指定的路径下data/<项目文件夹>/databases/。
像要使用SQLite,那么就需要去继承SQLiteOpenHelper,它来执行创建,增删改查相关的操作。继承SQLiteOpenHelper后,必须要实现两个方法,和实现一个构造函数。两个方法分别事onCreate(SQLiteDatabase db) 和 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 。一个事创建表,一个是用来升级数据库的。
构造函数中,需要去些指出数据库名和数据库版本。
public class DBOpenHelper extends SQLiteOpenHelper{
private static final String DATABASENAME = "test.db"; //数据库名称
private static final int DATABASEVERSION = 2;//数据库版本,大于0
//数据库的创建
public DBOpenHelper(Context context) {
super(context, DATABASENAME, null, DATABASEVERSION);
}
//创建表
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table user(id INTEGER primary key autoincrement,username char(20),userpwd char(20))";
db.execSQL(sql);
}
//数据库的升级
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS user";
db.execSQL(sql);
onCreate(db);
}
}
OnCreate()方法只调用一次,onUpgrade(),当数据库版本改变的时候,就会调用。我在代码中在调用时,重新去删除到表后重新执行onCreate(db)。可以像到,为了获取db(db是用来操作数据库的),需要去创建一次,这样就不用每次创建的时候都去调用构造函数。下面事会实现的。
接下来就是如何操作数据库,操作数据库有两种方式,一种是执行sql语句,还有一个事db来执行,只需要去调用对象的方法,并将参数传过去。
这里将一个类建立起来,并获取到DBOpenHelper。
public class DataHelper {
private DBOpenHelper mDBOpenHelper;
private DataHelper(Context context){
if (mDBOpenHelper == null){
mDBOpenHelper = new DBOpenHelper(context);
}
}
private static DataHelper mDataHelper;
public static DataHelper getDataHelper(Context context){
if (mDataHelper == null){
mDataHelper = new DataHelper(context);
}
return mDataHelper;
}
}
1.插入
首先事插入。表创建了,如何去创建数据。
execSQL(str);
insert(table,null,values);
第一个是执行sql语句,例如:insert into user(username,userpwd) values(' + "ice“+"','" + "123456"+"')";放入到execSQL参数中。可以执行在函数中些上要执行的语句,其中ice和12345用形参来代替,如insert into