Sqlite数据库是开源的c语言写的数据库,androidiphone都使用的这个,首先需要创建数据库,然后创建表和字段,android提供了一个apiSQLiteOpenHelper数据库的打开和创建类。

具体使用比如:创建一个classPersonSQLiteOpenHelper用户数据库类,继承SQLiteOpenHelper,父类是个抽象类要实现onCreate()onUpgrate()方法,此时会报错要求创建构造方法,构造方法的参数:Context上下文作用是告诉程序数据库创建在哪个目录下,Stringname数据库文件的名字,factory游标工厂一般我们都写null系统默认的,version数据库的版本从1开始,构造方法完成数据库就可以被创建。

OnCreate(SQLiteDatabasedb)方法是数据库第一次被创建时回掉,用来创建表以及初始化参数,参数就是我们创建的数据库。调用SQLiteDatabase对象的execSQL()方法执行sql语句,首先要创建表和mysql的基本一样,执行这条sql语句,createtableperson(idintegerprimarykeyautoincrement,namevarchar(20)notnulldefault“”)varchar的数字实际没有意义,给程序员看的,超过了也无所谓。

new出来helper对象的时候,数据库并不会被创建,只有当helper对象调用了getWritableDatabase()方法或者getReadableDatabase()时候才会被创建。使用测试用例来测试一下,但是helper类需要上下文对象,测试框架提供了一个方法叫getContext()来得到上下文对象,数据库文件的地址/data/data/包名/database/下面,是私有的权限

helper代码:

package com.tsh.database;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {    /**     * 构造方法     * @param context     */    public PersonSQLiteOpenHelper(Context context) {        super(context, "person.db", null, 1);    }    /**     * 数据库第一次创建完成的回调     */    @Override    public void onCreate(SQLiteDatabase db) {        String sql="create table person (id integer primary key autoincrement,name varchar(10) not null default '')";        db.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        // TODO Auto-generated method stub    }}

测试用例:

package com.tsh.database.test;import com.tsh.database.PersonSQLiteOpenHelper;import android.test.AndroidTestCase;public class TestPersonDb extends AndroidTestCase {    public void testPerson() throws Exception{        PersonSQLiteOpenHelper helper =new PersonSQLiteOpenHelper(getContext());        helper.getWritableDatabase();    }}

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android零碎知识
  5. 常用的Js调Android方法,以及Android原生传值给Js
  6. android 使用Intent传递数据之返回结果
  7. AsyncTask使用和源码解析
  8. 在Android(安卓)java代码中如何改变文件的权限
  9. 在Android(安卓)Stduio 中使用requestWindowFeature(Window.FEAT

随机推荐

  1. Android(安卓)Handler消息传递机制
  2. android中完全退出应用程序的方法
  3. Android(安卓)app项目开发步骤总结
  4. Android(安卓)2017 开源库 (持续更新)
  5. [CyanogenMOD移植教程]第二章:android 源
  6. Android(安卓)View、ViewGroup
  7. gradle常用命令和查看错误
  8. 简述关于TextView的属性使用
  9. 玩转Android---组件篇---数据存储之SQLit
  10. android横竖屏和隐藏标题栏、状态栏总结