五分钟学会之数据库~

 



岐小白开课啦~


     跟着岐小白,以后不用刮大白^_^

     SQL----数据库



package com.example.user.android2lesson_day4_database;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
/*
*      数据库--数据的仓库
*      数据持久化:本质上是将内存的数据写入到文件中,下次运行的时候可以直接读取,从而达到数据的长时间存储
*      数据库就是一套软件,实现了对数据的存储,是通过一些指令(SQL语句)的方式来进行的,现在主流的数据库是关系型数据库
*      可以简单的理解为表格。
*
*       数据库按处理的数据量大小分三类:
*       1.大型数据库 Oracle   DB2
*       2.中型数据库 SQLServer
*       3.小型数据库 MYSQL NOSQL
*       手机端数据库 SQLite
*
*        几个关键字
*        表--》表格
*        字段:相当于列
*        数据:相当于就是行
*        外键:与其它表之间的关系
*        主键:唯一且不为空的序列
*        非空:不能为空
*
*        有序:按顺序排列
*        自增:自动增长的序列
*
*
*        SQL语句简介
*
*        数据库永远离不开四个操作: 增! 删! 改! 查!CRUD
*        create 创建表格
*        create table student( name text,sex text,age integer);
*        insert 添加数据
*        insert into student(name,sex,age)values('张三','男',21);
*         insert into student(name,age)values('张三',21);
*        INSERT INTO student VALUES('张三','男',21);
*          delete 删除数据
*           delate from student  where id =3;
*           delate from student  where name ='张三';
*           delate from student  where 1=1;
*
*         update 修改数据
*         update student set name ="李四" where id =3;
*
*         select查询数据
*         select*from student where name="张三";
*          select name ,sex,age from student where name="张三";
*          sqlite是一种无数据类型的数据库
*          五种亲缘数据类型
*          1.Integer  所有整形数据
*          2.Varchar   包含字符串的文本
*          3.NONE     二进制
    *      4.REAL      浮点型
    *       5.NUMERIC 其它的类型
*          每个SOL语句以;号结束
*
    *
*
*
*
*
*
*
*
* */
     private Button createTable;
    private  Button insertData;
    private  Button deleteData;
    private  Button updateData;
    private  Button selectData;
//    数据库对象,代码中所有的和数据库进行的交互都是通过这个对象来进行的
    private SQLiteDatabase db;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        createTable= (Button) findViewById(R.id.createButton);
        insertData= (Button) findViewById(R.id.inserButtton);
        deleteData= (Button) findViewById(R.id.deleButton);
        updateData= (Button) findViewById(R.id.updateButton);
        selectData= (Button) findViewById(R.id.selectButton);
//        数据库的使用
//        使用之前需要创建数据库对象
//        参数1:数据存储的文件位置
//        参数2:文件创建工厂类,这里不需要,写为空
        db =SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.user.android2lesson_day4_database/database2 .db",null);

//        添加响应事件
//        创建表
        createTable.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                这里进行创建表操作
//                1.拼接sql语句
                String sql="CREATE TABLE IF NOT EXISTS student (sid INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT,sex TEXT, age INTEGER);";
//          2.向数据库对象发送sql指令

                db.execSQL(sql);
                Toast.makeText(getApplicationContext(),"创建表成功",Toast.LENGTH_SHORT).show();


            }
        });

//        添加数据
        insertData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String sql="INSERT INTO student(name,sex,age)VALUES('山茶花','男',22);";
                db.execSQL(sql);
                Toast.makeText(getApplicationContext(),"添加数据成功",Toast.LENGTH_SHORT).show();
            }
        });

        deleteData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String sql="DELETE FROM student where sid =1;";
                db.execSQL(sql);
                Toast.makeText(getApplicationContext(),"删除数据成功",Toast.LENGTH_SHORT).show();
            }
        });
        updateData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String sql ="UPDATE student set name ='山茶花' where sid =2";
                db.execSQL(sql);
                Toast.makeText(getApplicationContext(),"更新数据成功",Toast.LENGTH_SHORT).show();
            }
        });
        selectData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                1.获取数据库使用的游标
//                Cursor cursor =db.query("student",null,null,null,null,null,null);

                移动第一行,如果返回为false,那么证明没有数据
//                if (cursor.moveToFirst()){
                    2.循环显示数据
//                    for (int i=0;i<cursor.getCount();i++){
                        移动到第几行
//                        cursor.move(i);
                        获取ID
//                        Integer sid =cursor.getInt(0);
                        获取名字
//                        String name =cursor.getString(1);
                        获取性别
//                        String sex =cursor.getString(2);
                        获取年龄
//                        Integer age=cursor.getInt(3);
//                        System.out.println(sid+":"+name+":"+sex+":"+age);
//                    }
//                }
                Cursor cursor = db.query("student",null,null,null,null,null,null);
                Log.e("123", cursor.getCount() + "");
                if(cursor.moveToFirst()) {
                    do {
//获取ID
                        Integer sid = cursor.getInt(cursor.getColumnIndex("sid"));
                        //获取名字
                        String name = cursor.getString(cursor.getColumnIndex("name"));
                        //获取性别
                        String sex = cursor.getString(cursor.getColumnIndex("sex"));
                        //获取年龄
                        Integer age = cursor.getInt(cursor.getColumnIndex("age"));
                        Log.e("111",sid+":" +name+":"+sex+":"+age);

                    } while (cursor.moveToNext());
                }

            }
        });
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值