学习笔记(五)SQLite与ContentProvider

SQLite

SQLite是Android系统内置的轻量级关系数据库,它具有运算速度快,占用资源少等优点,通常只需要几百K的内存就足够了,因此特别适合在移动设备上使用。SQLite不仅支持标准的SQL语法,还遵循数据库的ACID事务,所以用过关系型数据库的同学很容易上手SQLite;

创建数据库

android为方便我们管理数据库,专门提供了SQLiteOpenHelper类,借助这个类可以非常简单的对数据库进行创建和升级;但是这个类是抽象类,我们需要自己创建一个新的类去继承它,我们需要重写onCreate()和onUpdate()方法;其次,还有两个非常重要的实例方法:
- getWritableDatabase();
- getReadableDatabase();
这两个方法都可以创建或打开一个现有的数据库(如果数据库已存在则直接打开,否则创建一个新的数据库),并返回一个可以数据库进行读写的操作对象。不同的是,当数据库不可写入的时候(如磁盘空间已满)getReadableDatabase()返回的对象将以只读的方式打开数据库。
SQLiteOpenHelper有两个构造方法可供重写,一般使用参数较少的构造方法:

public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version)
  • context:就是上下文的意思,有它才能对数据库进行操作。
  • name:创建数据库使用的名称。
  • factory:允许我们在查询数据的时候返回一个自定义的Cursor,一般传入null。
  • version:当前数据库的版本号,可对数据库进行升级操作。

eg:我们新建一个项目创建一个名为test_database.db数据库
DataBasehelper类继承SQLiteOpenHelper;

public class DataBasehelper extends SQLiteOpenHelper {
   
    private static final String CREATE_DB_ONR="create table users ("
            +"id integer primary key autoincrement,"
            +"username text,"
            +"password text"
            +")";
    private Context mcontext;
    public DataBasehelper(Context context,int version,String database_name) {
        super(context, database_name,null, version);
        mcontext=context;
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_DB_ONR);
        Toast.makeText(mcontext,"User_DB Succeed",Toast.LENGTH_SHORT).show();
    }
   @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  //当新的versio大于oldversion时候,会执行该方法
    }
}

Mainactivity.class

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
   
    public static final String TEST_DATABASE_DB = "test_database.db";
    private SQLiteDatabase sqLiteDatabase;
    private ContentValues contentValues;
    private int result;
    private static final String username_column="username";
    private static final String password_column= "password";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn_create= (Button) findViewById(R.id.btn_add_database);
        btn_create.setOnClickListener(this);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值