sqlite数据库测试类基本使用

sqlite数据库测试类的基本使用

      

1、在清单里配置权限和引入单元测试框架

代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sql_db_test"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
    <!-- 添加权限 对数据库的操作 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <!-- 引入android单元测试的框架 targetPackage 是该app的包名 -->
    <instrumentation 
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.example.sql_db_test">
    </instrumentation>
   
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <!-- 单元测试的依赖包 -->
        <uses-library 
            android:name="android.test.runner"/>
   
        </application>
</manifest>

-------------------------------------------



2、新建一个类

代码

//数据库 测试类 要继承AndroidTestCase 类
public class Test_studentinfo_db extends AndroidTestCase {
 private String path = Environment.getExternalStorageDirectory() + File.separator + "studentinfo2.db";
//方法名前面必须test然后 + xxx(方法名)
//并且测试方法 没有返回值    -- 注意:testAdd()方法 可以选中直接 运行
//增加数据方法
public void testAdd(){
//连接数据库 操作数据
//第一个参数 -- 存放数据库的路径
//第二个参数 -- 游标 可以是null(默认)
//第三个参数 -- 访问数据库的权限
SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);
 
//添加数据到 数据库
//第一个参数 -- 数据库 增删改 的SQL语句 value里的? -- 占位符
//第二个参数 -- 第一个参数 SQL语句 要增删改 的 数据
  for(int i = 0;i<20;i++){
  db.execSQL("insert into student(s_name,s_age,s_address,s_classname)  values(?,?,?,?)", new Object[]{"李四","12","广州","android2"});
  } db.close();
 }
//查询 数据库 数据方法
 public void textQuery(){
  SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);
 
//查询 数据库 数据

//返回的 是一个游标
  Cursor cursor = db.rawQuery("select * from studentinfo", null);
 
     while(cursor.moveToNext()){
//cursor.getString() 获取 具体下标 数据
//cursor.getColumnIndex -- 不知道具体下标 可以根据 key来 拿 想要的数据
      String s_sex = cursor.getString(cursor.getColumnIndex("s_sex"));
      int s_age = cursor.getInt(cursor.getColumnIndex("s_age"));
      int s_score = cursor.getInt(cursor.getColumnIndex("s_score"));
//在日志猫里 显示 要查询的 数据
      Log.i("data", s_sex + "," + s_age + "," + s_score);
     }
//关闭 游标 和 数据库
     cursor.close();
     db.close();
 }
}

你可能感兴趣的:(sqlite数据库测试类基本使用)