1.先创建一个MyOpenHelper类继承SQLiteOpenHelper用于对数据库的进行管理(创建时候的,更新时候的调用)
MyOpenHelper.java
package activty.zhanghang.com.myapplication; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by dell-pc on 2016/2/9. */ public class MyOpenHelper extends SQLiteOpenHelper { public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { //数据库创建的时候自动调用 String sql = "create table person(regedit integer,phone varchar(20),name varchar(20))"; db.execSQL(sql); System.out.print("数据库创建"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//数据库升级的时候自动调用 System.out.print("数据库更新"); } }
MainActivity.java不变 【我们先不要操作你哟】
package activty.zhanghang.com.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
2.新建一个测试类 继承AndroidCaseTest
package activty.zhanghang.com.myapplication; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.test.AndroidTestCase; /** * Created by dell-pc on 2016/2/9. */ public class TestCase extends AndroidTestCase { private MyOpenHelper openHelper; private SQLiteDatabase sqLiteDatabase; @Override public void setUp() throws Exception {//测试框架初始化完毕之后,在测试方法执行之前,此方法调用 super.setUp(); //getContext():获取一个虚拟的上下文 openHelper = new MyOpenHelper(getContext(), "people.db", null, 1); //如果数据库不存在,先创建数据库,再获取可读可写的数据库对象,如果数据库存在,就直接打开 sqLiteDatabase = openHelper.getWritableDatabase(); } //测试框架完成后,进行方法的调用 @Override public void tearDown() throws Exception { super.tearDown(); sqLiteDatabase.close(); } /** * 基本的对数据库进行增、删、改、查(SQL语句) */ public void insert(){ sqLiteDatabase.execSQL("insert into person (name, salary, phone)values(?, ?, ?)", new Object[]{"兄弟", "15200", 55454}); sqLiteDatabase.execSQL("insert into person (name, salary, phone)values(?, ?, ?)", new Object[]{"儿子", 14000, "74424"}); sqLiteDatabase.execSQL("insert into person (name, salary, phone)values(?, ?, ?)", new Object[]{"女孩", 14000, "74104"}); } public void delete(){ sqLiteDatabase.execSQL("delete from person where name = ?", new Object[]{"孩子"}); } public void update(){ sqLiteDatabase.execSQL("update person set phone = ? where name = ?", new Object[]{186666, "女孩"}); } public void select(){ Cursor cursor = sqLiteDatabase.rawQuery("select name, salary from person", null);//获取一个游标指针 while(cursor.moveToNext()){ //通过列索引获取列的值 String name = cursor.getString(cursor.getColumnIndex("name")); String salary = cursor.getString(1); System.out.println(name + ";" + salary); } } }
注意:
使用小型测试框架的时候要在AndroidMainfest.xml中进行声明
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="activty.zhanghang.com.myapplication" />在Application中进行声明
<uses-library android:name="android.test.runner"/>