App(4.20)

今天的计划是学习四大组件的广播,但是感觉和我们要做的这个项目关系不大。

研究了安卓的数据库,自带Sqlite,但是查看数据库的数据好麻烦,准备明天看看安卓中如何使用mysql数据库

Sqlite数据库的使用

保存常量值、

Constants.java

public class Constants {
    //数据库名称是常量
    //变量名大写 ctrl+shift u
    public static final String DATABASE_NAME="testdb";
    public static final int VERSION_CODE=3;
    public static final String TABLE_NAME="employee";
}

与创建数据库有关,其中要注意app的版本号,算是一种标识吧

需要掌握如何连接SQlite数据库(具体的构造方法),理解SQlite数据库的创建和回调的使用

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String TAG="DatabaseHelper";
    //上下文,数据库名称,游标工厂,版本号
    public DatabaseHelper(@Nullable Context context) {
        super(context, Constants.DATABASE_NAME, null, Constants.VERSION_CODE);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建时的回调
        //第一次创建被调用
        Log.d(TAG,"创建数据库...");
        //创建字段
        //create table table_name(_id integer,name varchar,age Integer,salary integer)
        //注意空格,生成正确的sql语句
        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;
        //db.execSQL(sql);

        switch (oldVersion) {
            case 1:
                //添加两个字段
                sql = "alter table " + Constants.TABLE_NAME + " add phone integer,address varchar ";
                db.execSQL(sql);
                break;
            case 2:
                //添加address
                sql = "alter table " + Constants.TABLE_NAME + " add address varchar";
                db.execSQL(sql);
                break;
            case 3:
                sql = "alter table " + Constants.TABLE_NAME + " add phone integer";
                db.execSQL(sql);
                break;
        }
    }
}

操作表中的数据Dao.java

需要掌握一些操作数据库的API

public class Dao {
    private final DatabaseHelper mHelper;
    private static final String TAG="Dao";

    public Dao(Context con) {
        mHelper = new DatabaseHelper(con);
    }

    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,"Bill",60,100,110,"USA"});*/
        //利用api
        ContentValues values=new ContentValues();
        values.put("_id",2);
        values.put("name","piggo");
        values.put("age",50);
        values.put("salary" ,1);
        values.put("phone",1290);
        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 = 100";
        db.execSQL(sql);*/
      int result= db.delete(Constants.TABLE_NAME,null,null);
      Log.d(TAG,"-------"+result);
        db.close();
    }

    public void update() {
        SQLiteDatabase db=mHelper.getWritableDatabase();
      /*  String sql="update  "+Constants.TABLE_NAME+" set  salary = 2 where age = 100";
        db.execSQL(sql);*/
        ContentValues values=new ContentValues();
        //放入要修改的数
        values.put("phone",122456);
        //修改所有的
        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 cusor=db.rawQuery(sql,null);
        //遍历
        while(cusor.moveToNext())
        {
            int index=cusor.getColumnIndex("name");
            String name=cusor.getString(index);
            Log.d(TAG,"name==="+name);
        }
        cusor.close();*/
     //
        Cursor cusor=db.query(Constants.TABLE_NAME,null,null,null,null,null,null);
        while(cusor.moveToNext())
        {
            int id=cusor.getInt(0);
           String name=cusor.getString(1);
           Log.d(TAG,"id==="+id+name);

        }

        cusor.close();
        db.close();
    }

}

MainActivity

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();
    }
}

 

posted @ 2020-04-20 22:18  祈欢  阅读(187)  评论(0)    收藏  举报