a b c d e f g h i j k l m n o p q r s t u v w x y z

android---数据保存之SQLite(实现登录用户信息保存)

由于不大善于总结和撰写,所以很多概念都以网络上参考学习为主,我会将这些知识融于到一个具体的练习中加以理解、巩固和分享。

今天要学习的SQLite个人感觉和以前使用的sql server,比较基础的东西都大同小异,基本的创建数据库表、对数据的增删改查的语句都差不多,如果懂得sql server的人学习SQLite应该还是容易上手的。唯一感觉不习惯的是,初次了解SQLite,在网上看别人的示例时,总感觉得很混乱,其实原因在于同样实现一个数据的增删改查,是有几种不同方法的。例如插入数据:有使用SQLiteDataBase对象执行sql语句方法db.execSQL(sql);或者db.insert(table, nullColumnHack, values);也有content provide和content Resolver搭配使用的(数据库提供对外访问 和 提供从外数据访问)。

如果一个应用程序中的数据库无需提供对外访问,实现一个继承自SQLiteOpenHelper的数据库帮助类,以支持数据库的创建和版本的更新,这些SQLiteDataBase所不能实现的.但是SQLiteDataBase却具备一些非常重要的对数据库进行操作的方法,数据表的创建删除、数据的增删改查都是通过它实现的。

执行增删改操作方法 :db.execSQL(sql); 或者db.insert()、db.delete()、db.update(),并且包括数据表的创建和删除等等也可以通过execSQL实现

 

代码
//创建表
public boolean createTable(){
SQLiteDatabase db
=dbHelper.getWritableDatabase();
String sql
="CREATE TABLE IF NOT EXISTS "+TABLE_NAME+"(ID INTEGER PRIMARY KEY,Name VARCHAR,Age INTEGER)";
try{
db.execSQL(sql);
return true;
}
catch(SQLException ex){
Log.d(tag,
"create table failure");
return false;
}
}

//添加数据
public boolean addData(){
String name
=etname.getText().toString();
String age
=etage.getText().toString();
SQLiteDatabase db
=dbHelper.getWritableDatabase();
String sql
="insert into "+TABLE_NAME+"(name,age) values ('"+name+"','"+age+"')";
try{
db.execSQL(sql);

return true;
}
catch(SQLException ex){
Log.d(tag,
"add data failure");
return false;
}
}

//修改
public boolean updateData(){
SQLiteDatabase db
=dbHelper.getWritableDatabase();
String sql
="update "+TABLE_NAME+" set age='2' where name like 'cb'";
Object[] bindArgs
={"cb"};
try{
db.execSQL(sql, bindArgs);
return true;
}
catch(SQLException ex){
Log.d(tag,
"update data failure");
return false;
}

}

 

 

执行数据查询方法:db.rawQuery(sql, selectionArgs); 或者db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);

 

代码
//查询
public void selectData(){
SQLiteDatabase db
=dbHelper.getReadableDatabase();
String[] columns
={"name"};
Cursor cursor
=db.query(TABLE_NAME, columns, null, null, null, null, null);
String names
="";
while(cursor.moveToNext()){
int c=cursor.getColumnIndexOrThrow("Name");
String name
=cursor.getString(c);
// < = >
// String name=cursor.getString(0);//只查询了一列
if(names==""){
names
=name;
}
else{
names
=names+"\n"+name;
}
}
tvname.setText(names);
//另外一种查询方法
// String sql="select name from "+TABLE_NAME;
// Curosr cursor=db.rawQuery(sql, null);
}

 

posted @ 2010-11-01 15:10  莴笋炒肉  阅读(6805)  评论(0编辑  收藏  举报