赞
踩
使用SQLite是安卓开发最中常用的数据处理方式之一, SQLite可以非常方便的进行数据存储,管理和维护等等。废话不多说,下面我来简单的介绍一下安卓中关于SQLite的使用。
1,创建数据库类
安卓中提供SQLiteOpenHelper类,用来管理数据库的创建和版本更新,它是SQLiteDatabase的一个帮助类。我们在平时开发过程中一般是继承SQLiteOpenHelper类,并实现它的onCreate()方法和onUpgrade()方法
public class DBOpenHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "account.db";//建立数据库名称
private static final int VERSION = 1;//数据库的版本
public DBOpenHelper(Context context) {
super(context, DB_NAME, null, VERSION);
// TODO Auto-generated constructor stub
}
// 首次创建数据库的时候调用, 一般可以把建库建表的操作在里边执行
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table if not exists stu_tb(_id integer primary key autoincrement, name text not null, sex text not null, age integer not null)");
}
// 当数据库版本发生变化时自动执行
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
2,数据库类创建好了之后,我们就可以在其他地方调用这个类
DBOpenHelper helper= new DBOpenHelper(context);
SQLiteDatabase db = null;
db = helper.getWritableDatabase();
//接下来就可以进行数据库的增删改查
3,对于数据库的增删改查,SQLiteDatabase类为我们提供了很多方法,其中比较常用方法介绍如下:
(返回值)方法名 | 方法描述 |
---|---|
(int) delete(String table,String whereClause,String[] whereArgs) | 删除数据行的便捷方法 |
(long) insert(String table,String nullColumnHack,ContentValues values) | 添加数据行的便捷方法 |
(int) update(String table, ContentValues values, String whereClause, String[] whereArgs) | 更新数据行的便捷方法 |
(void) execSQL(String sql) | 执行一个SQL语句,可以是一个select或其他的sql语句 |
(void) close() | 关闭数据库 |
(Cursor) query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) | 查询指定的数据表返回一个带游标的数据集 |
(Cursor) rawQuery(String sql, String[] selectionArgs) | 运行一个预置的SQL语句,返回带游标的数据集(与上面的语句最大的区别就是防止SQL注入) |
接下来详细介绍增删改查的方法
数据添加:
①,使用insert
ContentValues cv = new ContentValues();//实例化一个ContentValues用来装载待插入的数据cv.put("password","123456");//添加用户名
cv.put("password","123456"); //添加密码
db.insert("stu_tb",null,cv);//执行插入操作
②,使用execSQL
String sql = "insert into stu_tb(username,password) values ('Michael','123456');//插入操作的SQL语句
db.execSQL(sql);//执行SQL语句
数据删除
①,
String whereClause = "username=?";//删除的条件
String[] whereArgs = {"Michael"};//删除的条件参数
db.delete("stu_db",whereClause,whereArgs);//执行删除
②,
String sql = "delete from stu_dbwhere username='Michael'";//删除操作的SQL语句
db.execSQL(sql);//执行删除操作
数据修改
①,
ContentValues cv = new ContentValues();//实例化ContentValues
cv.put("password","12345678");//添加要更改的字段及内容
String whereClause = "username=?";//修改条件
String[] whereArgs = {"Michael"};//修改条件的参数
db.update("stu_db",cv,whereClause,whereArgs);//执行修改
②,
String sql = "update [user] set password = '12345678' where username='Michael'";//修改的SQL语句
db.execSQL(sql);//执行修改
数据查询
①,利用游标Cursor使用query来实现查询非常方便。游标Cursor的具体使用可以参照有关文档,里面的方法都比较简单易懂
public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
//table:表名称
//colums:列名称数组
//selection:条件子句,相当于where
//selectionArgs:条件语句的参数数组
//groupBy:分组
//having:分组条件
//orderBy:排序类
//limit:分页查询的限制
//Cursor:返回值,相当于结果集ResultSet
/**以上提供了非常多的查询条件,不需要的条件则为null**/
如:
Cursor c = db.query("stu_db",null,null,null,null,null,null);//查询并获得游标
while(c.moveToNext()){
String username = c.getString(c.getColumnIndex("username");
String password = c.getString(c.getColumnIndex("password"));
}
}
②,也可以rawQuery实现查询
Cursor c = db.rawQuery("select * from stu_db where username=?",new Stirng[]{"Michael"});
if(c.moveToFirst()) {
String username = c.getString(c.getColumnIndex("username");
String password = c.getString(c.getColumnIndex("password"));
}
总结:
以上是Android中关于SQLite的简单使用,可以满足平时开发过程的需要。由上可知,对于增删改查都有多种方法可以达到目的,对于使用哪一种就要看自己的需要了。之前对安卓使用SQLite都不是很熟悉,现在写了这篇文章后已经熟悉很多了,以后开发过程中也方便参考。当然,我也是个安卓初学者,若有哪里写得不够好有错误,欢迎指正!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。