您的位置:首页 > 移动开发 > Android开发

Android SQLite基本操作

2013-01-07 18:08 549 查看
在我的上一篇博客《andorid SQLite简介》中对SQLite的作用、特点等做了一个简单的介绍,这篇博客向大家介绍一下它的基本操作。

SQLiteDatabase类也专门提供了一些函数来操作数据库,有 insert,delete,update,query(),不过这些函数需要的参数比较多,适合对SQL语句不太懂的新手使用,如果想提高自己的水平,那么最好使用exeSQL(),rawQuery()。因为这两个方法比较直观明了、比较省事。

在程序初始化时候,必须先建立数据库以对数据库进行更新,所以这里需要继承一个 SQLiteOpenHelper抽象类,这里有两个方法 onCreate(),onUpgreade()两个方法,前者用来创建数据库及对数据库的一些初始化操作,后者是当数据库版本进行更新时候用。

下面的例子是创建了一个数据库名为:MyDB,版本为1的数据库,并在数据库中创建了一个User表。这里利用了构造函数传入了 数据库名和版本名常量,参数为Context 对象。

public class DatebaseHelper extends SQLiteOpenHelper {
public final static String NAME="MyDB";
public final static int VERSION=1;
public DatebaseHelper(Context context) {
super(context, NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE User (userID integer primary key autoincrement, userName varchar(20), pwd varchar(12))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL("DROP TABLE IF EXISTS User");
onCreate(db);
}
}
用SQLiteDatabase来操作SQLite数据库。
public class DatebaseService {
private DatebaseHelper dbHelper;
public DatebaseService(Context context) {
this.dbHelper = new DatebaseHelper(context);
}
//保存数据。
public void save(User user){
SQLiteDatabase db=dbHelper.getWritableDatabase();
db.execSQL("insert into user(userName,pwd) values(?,?)", new Object[]{user.getName(),user.getpwd()});

}
//更新数据
public void update(User user){
SQLiteDatabase db=dbHelper.getReadableDatabase();
db.execSQL("update user set userName=?,pwd=? where userID=?", new Object[]{user.getuserName(),user.getpwd(),user.getuserID()});
}
//查找数据
public User find(Integer userID){
SQLiteDatabase db=dbHelper.getReadableDatabase();
Cursor cursor=db.rawQuery("select * from User where userID=?",new String[]{userID.toString()} );
while(cursor.moveToNext()){
String name=cursor.getString(cursor.getColumnIndex("userName"));
int pwd=cursor.getInt(cursor.getColumnIndex("pwd"));
int id=cursor.getInt(cursor.getColumnIndex("userID"));
return new User(id,name,pwd);

}
return null;
}
//删除数据
public void delete(Integer userID){
SQLiteDatabase db=dbHelper.getReadableDatabase();
db.execSQL("delete from User where userID=?",new Object[]{userID});
}
public Long getCount(){
SQLiteDatabase db=dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select count(*) from User", null);
cursor.moveToFirst();
return cursor.getLong(0);
}
当然SQLite的操作还不止这一点,这里只是一些简单的增删改查,还有很多更好的操作应用,将在以后介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: