SQLite的用法

什么是SQLite

1.SQLite数据库存储是Android系统提供的数据存储方式之一
2.SQLite是专为嵌入式设备设计的一款轻量级数据库
3.SQLite占用资源非常低,在嵌入式设备中,只需要几百K的内存
4.SQLite支持标准的SQL语法,遵循数据库的ACID事务
5.SQLite是android系统自带,不需要单独安装,不需要用户名密码就可以使用

SQLite的用法

在使用SQLite时我们需要先创建一个数据库和表。所以我们先创建一个类来继承SQLiteOpenHelper


public class DBHelper extends SQLiteOpenHelper {

//创建数据库
    private String school="create table student(" +
            "id integer primary key autoincrement not null," +
            "name text)";

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

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
    //启用数据库
                sqLiteDatabase.execSQL(school);
    }

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

    }
}

在创建数据库的时候我们需要多加小心,因为在Android Studio中写SQLite语句并不会像写JAVA语句一样,会报错。

之后我们需要在其他的Activity中调用这个数据库

 private Button button1;
        private Button button2;
        private Button button3;
        private Button button4;
        private EditText editText1;
        private EditText editText2;


        private DBHelper dbHelper;
        private SQLiteDatabase sqLiteDatabase;

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

                dbHelper = new DBHelper(this, "sql", null, 1);

        }

        private void bindID() {
            button1 = findViewById(R.id.lite_btn1);
            button2 = findViewById(R.id.lite_btn2);
            button3 = findViewById(R.id.lite_btn3);
            button4 = findViewById(R.id.lite_btn4);
            editText1 = findViewById(R.id.lite_et1);
            editText2 = findViewById(R.id.lite_et2);

            button1.setOnClickListener(this);
            button2.setOnClickListener(this);
            button3.setOnClickListener(this);
            button4.setOnClickListener(this);

        }

        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.lite_btn1:
                    SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase();
                    ContentValues values=new ContentValues();
                    values.put("name",editText1.getText().toString());
                    sqLiteDatabase.insert("student",null,values);
                    break;
                case R.id.lite_btn2:
                    SQLiteDatabase sqLiteDatabase1 =dbHelper.getReadableDatabase();
                    //创建游标
                    Cursor cursor =sqLiteDatabase1.query("student",null,null,null,null,null,null);
                    //游标置顶
                    cursor.moveToFirst();
                    do {
                        String name =cursor.getString(cursor.getColumnIndex("name"));
                        Log.e("NAME",name);
                        //游标归零
                    }while (cursor.moveToFirst());
                    break;
                case R.id.lite_btn3:
                    String name =editText1.getText().toString();
                    String Newname=editText2.getText().toString();
                    SQLiteDatabase sqLiteDatabase2 =dbHelper.getReadableDatabase();
                    ContentValues values1=new ContentValues();
                    values1.put("name",Newname);
                     //第二个参数是修改的字段及修改的值(已经存放到ContentValues中)
                //第三个参数是WHERE语句
                //第四个参数是WHERE语句中占位符的填充值
                //如果第三四个参数为null,那就将每条记录都改掉
                    sqLiteDatabase2.update("student",values1,"name=?",new String[]{name});
                    break;
                case R.id.lite_btn4:
                    SQLiteDatabase sqLiteDatabase3 =dbHelper.getReadableDatabase();
                    String name1=editText1.getText().toString();
                    //第二个参数是WHERE语句(即执行条件,删除哪条数据)
                    //第三个参数是WHERE语句中占位符(即"?"号)的填充值
                    sqLiteDatabase3.delete("student","name=?",new String[]{name1});
                    break;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值