SQL数据库

一.SQLite数据库介绍

1.Android 系统中集成的轻量级的数据库
2.特点:
轻量级 只用一个动态的库, 是以单个文件的形式进行存取
跨平台 支持多个操作系统
零配置 无需安装, 直接使用
嵌入式 内嵌到手机中
3.在程序的内部可以通过数据库的名称访问, 其他应用不能访问
4.路径: data/data/应用程序包名/database/ ****.db
5.存放的类型:
NULL 空值
INTEGER 整型(不用int)
VARCHAR 可变长度的字符数据
TEXT 文本字符串
BOOLEAN 布尔
DATE
二.数据库核心类
1.SQLiteOpenHelper 数据库的帮助类, “用于数据库的创建和版本更新”
(1)定义一个类, 继承SQLiteOpenHelper
(2)重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,Null,数据库的版本号
(3)重写父类的方法:
onCreate():第一次创建数据库时调用, 只会执行一次 – “初始化表,初始化数据”
onUpgrade()
2.SQLiteDatabase 数据库的操作类, “操作数据库: 执行sql语句/增/删/改/查”
(0)获取SQLiteDatabase对象
(1)执行sql 语句
void execSQL(String sql,String[] bindArgs); 执行增删改
Cusor rawQuery(String sql,String[] selectionArgs); 执行查询
(2)执行方法 – 封装好的方法 (适用于菜鸟级别的程序员)
insert() 插入数据
update() 修改数据
delete() 删除数据
query() 查询数据

四.数据库简单代码:

//TODO 1:自定义类继承SQLiteOpenHelper 数据库帮助类:创建数据库
public class My_SQL extends SQLiteOpenHelper {
    //TODO 2:构造
    //参数一 上下文 参数二 数据库名称 参数三 工厂 null使用默认  参数四 版本号 1
    public My_SQL(Context context) {
        super(context, "student.db", null, 1);
    }
    //TODO 3:方法  创建表初始化数据
    @Override
    public void onCreate(SQLiteDatabase db) {
                db.execSQL("create table student(id integer primary key autoincrement,name varchar(10),sex varchar(5),age integer)");
                db.execSQL("insert into student values(null,'张三','男',18),(null,'小明','男',28),(null,'小丽','女',17)");
    }
   //数据库版本更新不用写
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

数据库操作代码

/**
 * 一。创建数据库+创建表:SQLiteOpenHelper
 * create table 表名(id integer primary key autoincrement,name varchar(30),age integer)
 *
 *
 *二。操作数据SQLiteDatabase
 void execSQL(String sql,String[] bindArgs); 执行增删改
 Cusor rawQuery(String sql,String[] selectionArgs); 执行查询
 *
 * */
public class MainActivity extends AppCompatActivity {
Button bt1,bt2,bt3,bt4;
    SQLiteDatabase student;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = findViewById(R.id.add);
        bt2 = findViewById(R.id.dlet);
        bt3 = findViewById(R.id.update);
        bt4 = findViewById(R.id.find);
        //创建数据库帮助类实例对象
        My_SQL my_sql = new My_SQL(this);
        student = my_sql.getWritableDatabase();
        //增加数据
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//               student.execSQL("insert into student values(null,?,?,?)",new Object[]{"张飞","男",35});
                ContentValues contentValues = new ContentValues();
                contentValues.put("name","赵子龙");
                contentValues.put("age","23");
                long num = MainActivity.this.student.insert("student", null, contentValues);

            }
        });
        //删除数据
        bt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int num = MainActivity.this.student.delete("student", "age<?", new String[]{"18"});
            }
        });
        //修改数据
        bt3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ContentValues contentValues = new ContentValues();
                contentValues.put("age","15");
                student.update("student",contentValues,"name = ?",new String[]{"张飞"});

            }
        });
        //查找数据
        bt4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                Cursor cursor = student.rawQuery("select * from student", null);
                Cursor cursor = MainActivity.this.student.query("student", null, null, null, null, null, null);
                while (cursor.moveToNext()){
                    int id = cursor.getInt(cursor.getColumnIndex("id"));
                    String name = cursor.getString(cursor.getColumnIndex("name"));
                    String sex = cursor.getString(cursor.getColumnIndex("sex"));
                    int age = cursor.getInt(cursor.getColumnIndex("age"));
                    Log.e("stu",id+" "+name+" "+sex+" "+age);
                }
            }
        });

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MX_XXS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值