作者:呼吸的雨儿作_741 | 来源:互联网 | 2023-05-17 10:58
1.先创建一个MyOpenHelper类继承SQLiteOpenHelper用于对数据库的进行管理(创建时候的,更新时候的调用)MyOpenHelper.javapackageactivty.zha
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中进行声明
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="activty.zhanghang.com.myapplication"
/>
在Application中进行声明
android:name="android.test.runner"/>