Day..09,SQLtie数据库

数据库的介绍:

Android 系统中集成的轻量级的数据库
轻量级 只用一个动态的库, 是以单个文件的形式进行存取
跨平台 支持多个操作系统
零配置 无需安装, 直接使用
嵌入式 内嵌到手机中

SQL语句的俩个核心类:

SQLiteOpenHelper

1.创建一个类 继承SQLiteOpenHelper

package com.example.day09;

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

public class Mysqlhelp extends SQLiteOpenHelper {

    public Mysqlhelp(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

 /**
 * 构造
 * @param context 上下文
 * @param name  数据库名称
 * @param factory  创建数据的工厂对象
 * @param version 数据版本号
 */	

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table user" +
                "(id integer primary key autoincrement," +
                "name varchar(20)," +
                "age integer)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

oncreate在这个方法中创建数据库的数据表
重点:(创建表的格式):create table 表名 (这里面填写数据)
主键:primary key
自增:autoincrement
配套使用

SQLiteDatabase

他是用来对数据库进行操作。。(增,删,改,查)
通过SQLiteOpenHelper获取SQLiteDatabase对象

		//创建SQL数据库
        Mysqlhelp mysqlhelp = new Mysqlhelp(this, "user.db", null, 1);
        //操作
        readableDatabase = mysqlhelp.getReadableDatabase();

用对象来进行操作
//添加

 public void click(View view) {
        //添加一条新数据
        //原生SQL
        String sql = "insert into user values(null,?,?)";
        readableDatabase.execSQL(sql,new Object[]{"kun",20});
        //这是安卓自带
        ContentValues contentValues = new ContentValues();
        contentValues.put("name","jia");
        contentValues.put("age",123);
//        readableDatabase.insert("user",null,contentValues);
    }

//更新数据库

    public void clicck(View view) {
        //原生SQL
        String sql = "update user set name = ? where id = ?";
        readableDatabase.execSQL(sql,new Object[]{"小小明",6});
        //这是安卓自带
        ContentValues contentValues = new ContentValues();
        contentValues.put("name","xiaoming");
        int user = readableDatabase.update("user", contentValues, "id = ?", new String[]{"1"});
    }

//删除

	    public void cliccck(View view) {
		//这是原生
        String sql = "delete from user where id = ?";
        readableDatabase.execSQL(sql,new Object[]{5});
		//这是安卓自带
        readableDatabase.delete("user","id = ?",new String[]{"5"});

    }

//查找

    public void clicccck(View view) {

//        String sql = "select * from user where id = ?";
//        Cursor cursor = readableDatabase.rawQuery(sql, new String[]{"2"});
//        if(cursor != null){
//            while(cursor.moveToNext()){
//                String name = cursor.getString(cursor.getColumnIndex("name"));
//                Toast.makeText(this, name, Toast.LENGTH_SHORT).show();
//            }
//        }
//        else {
//            Toast.makeText(this, "无", Toast.LENGTH_SHORT).show();
//        }
//        cursor.close();

        Cursor user = readableDatabase.query("user", null, null, null, null, null, null);
        if(user != null){
            while(user.moveToNext()){
                String name = user.getString(user.getColumnIndex("name"));
                String id = user.getString(user.getColumnIndex("id"));
                String age = user.getString(user.getColumnIndex("age"));
                entity entity = new entity();
                entity.setId(Integer.parseInt(id));
                entity.setName(name);
                entity.setAge(Integer.parseInt(age));

               Log.i("123456",entity.toString());
            }
        }
        user.close();
    }

// 最后我们需要封装一个类 将数据放在里面:(一般情况下。。类名是entity)

package com.example.day09.entity;

public class entity {

    private Integer id;
    private String name;
    private Integer age;

    public entity(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public entity() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "entity{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

//用封装的类的get,set方法封装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值