Android 数据库SQLite的操作总结

1.Android数据库的创建,继承SqliteOpenHelper

public class DatabaseHelperextends SQLiteOpenHelper {
 
    private static final String DB_NAME = "mydata.db";//数据库名称
    private static final int version = 1;//数据库版本
     
    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, version);
        // TODO Auto-generated constructor stub
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table user(username varchar(20) not null , password varchar(60) not null );";         
        db.execSQL(sql);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion) {
        // TODO Auto-generated method stub
 
    }
 
}

2.SqliteOpenHelper帮助类的介绍

用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。

其中getReadableDatabase()和getWritableDatabase()都是用来生成一个数据库操作类的实例,两者生成的对象都可以对数据库进行读写的操作,区别在于当磁盘满了的时候read还可以继续以只读方式打开数据库进行访问,而write则会报错

1
2
3
DatabaseHelper database = new  DatabaseHelper( this ); //这段代码放到Activity类中才用this
SQLiteDatabase db = null ;
db = database.getReadalbeDatabase();

3.关于SqliteOpenHelper和SqliteDatabase之间的关系

SqliteDatabase没有提供构造函数,不能直接使用,需要通过SqliteOpenHelper.getReadalbeDatabase()两种方法获取到实例

使用Context.openOrCreateDatabase 与 SQLiteDatabase.openOrCreateDatabase两者都可以进行数据库的创建



4.数据库的增删改查操作

数据的添加

1.使用insert方法

1
2
3
ContentValues cv = new  ContentValues(); //实例化一个ContentValues用来装载待插入的数据cv.put("username","Jack Johnson");//添加用户名
cv.put( "password" , "iLovePopMusic" ); //添加密码
db.insert( "user" , null ,cv); //执行插入操作

2.使用execSQL方式来实现

1
2
String sql = "insert into user(username,password) values ( 'Jack Johnson' , 'iLovePopMuisc' ); //插入操作的SQL语句
db.execSQL(sql); //执行SQL语句

数据的删除

同样有2种方式可以实现

1
2
3
String whereClause = "username=?" ; //删除的条件
String[] whereArgs = { "Jack Johnson" }; //删除的条件参数
db.delete( "user" ,whereClause,whereArgs); //执行删除

使用execSQL方式的实现

1
2
String sql = "delete from user where username='Jack Johnson'" ; //删除操作的SQL语句
db.execSQL(sql); //执行删除操作

数据修改

同上,仍是2种方式

1
2
3
4
5
ContentValues cv = new  ContentValues(); //实例化ContentValues
cv.put( "password" , "iHatePopMusic" ); //添加要更改的字段及内容
String whereClause = "username=?" ; //修改条件
String[] whereArgs = { "Jack Johnson" }; //修改条件的参数
db.update( "user" ,cv,whereClause,whereArgs); //执行修改

使用execSQL方式的实现

1
2
String sql = "update [user] set password = 'iHatePopMusic' where username='Jack Johnson'" ; //修改的SQL语句
db.execSQL(sql); //执行修改

你可能感兴趣的:(android)