我跟安卓开发基础视频做的数据库,无法对数据库进行操作,也无法做测试类
package com.example.databasedemo;
public class Constants {
public static final String DATABASE_NAME = "sunofbeaches.db";
public static final int VERSION_CODE = 3;
public static final String TABLE_NAME = "employee";
}
package com.example.databasedemo;
import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.nfc.Tag;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = "DatabaseHelper";
/*
* context 上下文
* name 数据库名称
* factory 游标工厂
* version 版本号*/
public DatabaseHelper( Context context) {
super(context, Constants.DATABASE_NAME,null,Constants.VERSION_CODE);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建时的反馈
Log.d(TAG,"创建数据库");
String sql = "create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//升级时的反馈
Log.d(TAG,"升级数据库...");
String sql;
switch (oldVersion){
case 1:
//添加address和这个phone字段
sql = "alter table "+ Constants.TABLE_NAME + " add phone integer";
sql = "alter table "+ Constants.TABLE_NAME + " add address varchar";
db.execSQL(sql);
break;
case 2:
sql = "alter table "+ Constants.TABLE_NAME + " add address varchar";
db.execSQL(sql);
break;
case 3:
//
break;
}
}
}
package com.example.databasedemo;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
public class Dao {
private final DatabaseHelper mHelper;
private static final String TAG = "Dao";
public Dao(Context context){
//创建数据库
mHelper = new DatabaseHelper(context);
}
public void insert(){
SQLiteDatabase db = mHelper.getWritableDatabase();
/* String sql = "insert into " + Constants.TABLE_NAME + "(_id,name,age,salary,phone,address) values(?,?,?,?,?,?)";
db.execSQL(sql,new Object[]{1,"liuliu",60,1,110,"USA"});*/
ContentValues values = new ContentValues();
//添加数据
values.put("_id",2);
values.put("name","larrypage");
values.put("salary",1);
values.put("age",44);
values.put("address","USA");
db.insert(Constants.TABLE_NAME,null,values);
db.close();
}
public void delete(){
SQLiteDatabase db = mHelper.getWritableDatabase();
/*String sql = "delete from " + Constants.TABLE_NAME + " where age = 60";
db.execSQL(sql);*/
int delete = db.delete(Constants.TABLE_NAME, null, null);
Log.d(TAG,"delete_delete === " + delete);
db.close();
}
public void update(){
SQLiteDatabase db = mHelper.getWritableDatabase();
/*String sql = "update " + Constants.TABLE_NAME + " set salary = 2 where age = 60";
db.execSQL(sql);*/
ContentValues values = new ContentValues();
values.put("age",78);
db.update(Constants.TABLE_NAME,values,null,null);
db.close();
}
public void query(){
SQLiteDatabase db = mHelper.getWritableDatabase();
/* String sql = "select * from " + Constants.TABLE_NAME;
Cursor cursor = db.rawQuery(sql, null);
while (cursor.moveToNext()){
int index = cursor.getColumnIndex("name");
String name = cursor.getString(index);
Log.d(TAG,"name ==" + name );
}
cursor.close();*/
Cursor cursor = db.query(Constants.TABLE_NAME, null, null, null, null, null, null);
while (cursor.moveToNext()){
int id = cursor.getInt(0);
String name = cursor.getString(1);
Log.d(TAG,"id == " + id + " name = " + name);
}
cursor.close();
db.close();
}
}
package com.example.databasedemo;
import android.content.Context;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class TestDatabase {
@Test
public void testCreate(){
}
@Test
public void testInsert(){
Context getContext = InstrumentationRegistry.getInstrumentation().getContext();
Dao dao = new Dao(getContext);
dao.insert();
}
@Test
public void testDelete(){
Context getContext = InstrumentationRegistry.getInstrumentation().getContext();
Dao dao = new Dao(getContext);
dao.delete();
}
@Test
public void testUpdate(){
Context getContext = InstrumentationRegistry.getInstrumentation().getContext();
Dao dao = new Dao(getContext);
dao.update();
}
@Test
public void testQuery(){
Context getContext = InstrumentationRegistry.getInstrumentation().getContext();
Dao dao = new Dao(getContext);
dao.query();
}
}
package com.example.databasedemo;
import androidx.appcompat.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);
//创建数据库
DatabaseHelper helper = new DatabaseHelper(this);
helper.getWritableDatabase();
}
}


log不给全