Android复习07【创建数据库、insert()插入数据、查看数据库、根据列索引获取参数值、根据列名-返回索引、增删改查数据、数据分页、修改表结构、Room框架】

2020-04-09-星期四-第八周

目   录

 创建数据库

insert()方法

查看数据库(Save as保存)

菜鸟教程---SQLite数据库

根据 列索引 获取 参数值

列比较多---根据列名,返回索引

删除数据

query

简单方式(增删改查)

插入数据、删除数据、修改数据

查询数据

数据分页(偏移量、取得数据的数量)、查询记录数

修改数据表结构

MyHelp.java代码

android-Room框架

Room-3大组件

MainActivity.java代码

期末考试内容

创建数据库

数据库的增删改查


 创建数据库

insert()方法

查看数据库(Save as保存)

菜鸟教程---SQLite数据库

6.3.1 数据存储与访问之——初见SQLite数据库

https://www.runoob.com/w3cnote/android-tutorial-sqlite-intro.html

根据 列索引 获取 参数值

列比较多---根据列名,返回索引

删除数据

query

简单方式(增删改查)

插入数据、删除数据、修改数据

查询数据

数据分页(偏移量、取得数据的数量)、查询记录数

修改数据表结构

MyHelp.java代码

package cn.wangzg.course0802;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

/**
 * Time: 2020/4/9
 * Author: wangzhiguo
 * Description: 功能描述
 */
public class MyHelper extends SQLiteOpenHelper {
    public MyHelper(@Nullable Context context) {
        super(context, "mydb.db", null, 2);//创建数据库
    }

    @Override
    public void onCreate(SQLiteDatabase db) {//创建数据表,只有第一次时执行
        db.execSQL("create table person(id integer primary key autoincrement," +
                "name varchar(20),age int,zy);");
        System.out.println("----------111111-----------");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        System.out.println("----------" + newVersion + "-----------");
        db.execSQL("alter table person add column zy;");
    }
}

android-Room框架

Google官方文档 

https://developer.android.google.cn/training/data-storage/room

Room-3大组件

MainActivity.java代码

package cn.wangzg.course0802;

import androidx.appcompat.app.AppCompatActivity;
import androidx.room.Room;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import java.util.List;

public class MainActivity extends AppCompatActivity {
    private MyHelper helper;
    private TextView tvSqlite;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        helper = new MyHelper(this);
        tvSqlite = findViewById(R.id.tv_sqlite);

        AppDatabase db = Room.databaseBuilder(getApplicationContext(),
                AppDatabase.class, "dbroom.db")
                .allowMainThreadQueries().build();

        User user1 = new User();
        user1.firstName = "aaa";
        user1.lastName = "bbb";
        user1.uid = 3;

        User user2 = new User();
        user2.firstName = "ccc";
        user2.lastName = "ddd";
        user2.uid = 2;
        db.userDao().insertAll(user1, user2);

        List<User> users = db.userDao().getAll();
        for (User u : users) {

            System.out.println(u.firstName + "---" + u.lastName);
        }
    }

    public void btnInsert(View view) {
        SQLiteDatabase db = helper.getWritableDatabase();
        //ContentValues等同于Map
        ContentValues values = new ContentValues();
        values.put("name", "aaaa");//key:必须为数据表的列名
        values.put("age", 23);
        //nullColumnHack:插入时需要忽略的列
        db.insert("person", null, values);
    }

    public void btnUpdate(View view) {
        SQLiteDatabase db = helper.getWritableDatabase();

        ContentValues values = new ContentValues();
        //values.put("name","aaaa");
        values.put("age", 25);
        /**
         * update table
         * set xxx=?,xxx=?      --values
         * where xxx=?
         */
        db.update("person", values, "name=?", new String[]{"aaaa"});
    }

    public void btnDelete(View view) {
        SQLiteDatabase db = helper.getWritableDatabase();
        /**
         * delete table
         * where xxx=?
         */
        db.delete("person", "age<?", new String[]{"30"});
    }

    public void btnQuery(View view) {
        SQLiteDatabase db = helper.getReadableDatabase();
        /**
         * select *
         * from table
         * where name=? and age=?
         * group by
         * having
         * order
         */
        Cursor cursor = db.query("person", null, null, null,
                null, null, null);
        if (cursor == null) return;
        int nameIndex = cursor.getColumnIndex("name");
        int ageIndex = cursor.getColumnIndex("age");
        while (cursor.moveToNext()) {
            String name = cursor.getString(nameIndex);
            int age = cursor.getInt(ageIndex);
            tvSqlite.setText(name + "   " + age);
            //System.out.println(name);
        }
        cursor.close();
    }
}

期末考试内容

创建数据库

数据库的增删改查

猜你喜欢

转载自blog.csdn.net/weixin_44949135/article/details/106321390