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

原文链接: http://www.cnblogs.com/jico/archive/2010/11/01/1861788.html

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

今天要学习的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);
}

 

转载于:https://www.cnblogs.com/jico/archive/2010/11/01/1861788.html

你可能感兴趣的:(android---数据保存之SQLite(实现登录用户信息保存))