SQLite数据库简单简介和简单操作

AndroidSQLite简答简介和简单操作

    • SQLite数据库
    • 数据库方法简单介绍
    • 数据库的创建
    • 数据库的增删改查

SQLite数据库

1.Android 系统中集成的轻量级的数据库
2.特点:
轻量级 只用一个动态的库, 是以单个文件的形式进行存取
跨平台 支持多个操作系统
零配置 无需安装, 直接使用
嵌入式 内嵌到手机中
3.在程序的内部可以通过数据库的名称访问, 其他应用不能访问
4.路径: data/data/应用程序包名/database/ ****.db
5.存放的类型:
NULL 空值
INTEGER 整型(不用int)
VARCHAR 可变长度的字符数据
TEXT 文本字符串
BOOLEAN 布尔
DATE
Time

数据库方法简单介绍

SQLiteOpenHelper 数据库的帮助类, “用于数据库的创建和版本更新”
定义一个类, 继承SQLiteOpenHelper
重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,工厂(null),数据库的版本号

重写父类的方法:
onCreate():第一次创建数据库时调用, 只会执行一次 – “初始化表,初始化数据”
onUpgrade()

SQLiteDatabase 数据库的操作类, “操作数据库: 执行sql语句/增/删/改/查”
获取SQLiteDatabase对象
执行sql 语句 execSQL()

insert() 插入数据
update() 修改数据
delete() 删除数据
query() 查询数据

数据库的创建

// An highlighted block
ublic class MyOpenHelper extends SQLiteOpenHelper {
    public MyOpenHelper(Context context) {
    //创建数据库
        super(context, "student1702C", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

//创建表 只会调用一次
        db.execSQL("CREATE TABLE student(_id integer PRIMARY KEY AUTOINCREMENT ,NAME VARCHAR(20),sex VARCHAR(20),brith INT,department VARCHAR(20),address VARCHAR(20))");
//创建表
        db.execSQL("CREATE TABLE score(_id integer  PRIMARY KEY AUTOINCREMENT,stu_id INT ,c_name VARCHAR(20),grade INT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

数据库的增删改查

public class MainActivity extends AppCompatActivity {

    ListView listView;
    SQLiteDatabase dp;
    ArrayList<Student> arrayList=new ArrayList<>();
    Mybasert mybasert;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView=findViewById(R.id.lv);

        MyOpenHelper helper = new MyOpenHelper(this);
        dp = helper.getWritableDatabase();

       mybasert = new Mybasert(MainActivity.this, arrayList);

        listView.setAdapter(mybasert);

    }

    public void insert(View view) {

        dp.execSQL("INSERT INTO student VALUES(901,'张老大','男',1985,'计算机系','北京市海淀区'),(NULL,'张老二','男',1986,'中文系','北京市昌平区'),(NULL,'张三','女',1990,'中文系','湖南省永州区'),(NULL,'李四','男',1990,'英语系','辽宁省阜阳市'),(NULL,'王五','女',1991,'英语系系','福建省厦门市'),(NULL,'王六','男',1988,'计算机系','湖南省衡阳市')");

        dp.execSQL("INSERT INTO score VALUES(1,901,'计算机',98),(NULL,901,'英语',80),(NULL,902,'计算机',65),(NULL,902,'中文',88),(NULL,903,'中文',95),(NULL,904,'计算机',70),(NULL,904,'英语',92),(NULL,905,'英语',94),(NULL,906,'计算机',90),(NULL,906,'英语',85)");

        Log.i("###", "我调用了这个方法");

    }

    public void update(View view) {
        dp.execSQL("UPDATE student SET NAME='隔壁老王' WHERE NAME=?",new String[]{"王五"});

    }

    public void delete(View view) {

        dp.execSQL("DELETE FROM student WHERE NAME='张老大'");
    }

    public void select(View view) {

//       Cursor student = dp.query("student", null, null, null, null, null, null);

        Cursor student =  dp.query("student",null,null,null,null,null,null,"2,4");


        while(student.moveToNext()){
            String name = student.getString(student.getColumnIndex("NAME"));
            Student student1 = new Student(name);
            arrayList.add(student1);
            mybasert.notifyDataSetChanged();
        }

    }
}

你可能感兴趣的:(Android,存储方式)