SQLite

本文详细介绍了在Android中使用SQLite的方法,包括数据库和数据表的创建、数据的增删改查等核心操作,并通过一个学生信息管理的例子进行具体演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、为什么要用SQLite?
SharedPreferences是以xml形式存储数据的,只适合储存基本数据类型的数据,文件存储的内容在读取解析时相对复杂;当数据量大,结构复杂时,如果使用SharedPreferences和文件储存对数据的操作将变得非常复杂,容易出错,效率低下,Android提供了SQLite数据存储,帮助我们解决这些问题。
2、什么是SQLite?

3、如何创建数据库和数据表?
新建继承类SQLiteOpenHelper;
实现其中的构造方法,重写onCreate方法和onUpgrade方法;
实例化SQLiteOpenHelper的子类对象;
调用getReadableDatabase方法或者getWritaDatabase方法。
这里以一个学生列表举例:

package com.example.sqliteapplication;

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

public class MySqiliteHelper extends SQLiteOpenHelper{

    private String sql = "create table student(" +
            "id integer primary key autoincrement not null," +
            "name text," +
            "age integer" +
            ")";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(sql);//创建数据库及数据表

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //不需要更新数据时,什么都不用写
    }
}

4、如何添加数据?
创建StudentActivity,在里面写一个方法addStudent(),内容如下:

private void addStudent() {
        String name = name_et.getText().toString();
        int age = Integer.parseInt(age_et.getText().toString());

        ContentValues values = new ContentValues();
        values.put("name",name);
        values.put("age",age);

        MySqiliteHelper mySqiliteHelper = new MySqiliteHelper(this,"student_db",null,1);
        SQLiteDatabase sqLiteDatabase = mySqiliteHelper.getWritableDatabase();
        sqLiteDatabase.insert("student",null,values);
    }

5.如何删除数据?

private void delectstudent() {

        String name=  nameET.getText().toString();
        int age= Integer.parseInt(ageET.getText().toString());

        MySQLiteHelper mysqliteHelper=new MySQLiteHelper(this,"student_db",null,1);
        SQLiteDatabase db=mysqliteHelper.getReadableDatabase();
        db.delete("student","name=?",new String[]{name});



    }

6.如何修改数据?

 private void updatestudent() {
        String name=  nameET.getText().toString();
        int age= Integer.parseInt(ageET.getText().toString());

        MySQLiteHelper mysqliteHelper=new MySQLiteHelper(this,"student_db",null,1);
        SQLiteDatabase db=mysqliteHelper.getReadableDatabase();
        ContentValues values=new ContentValues();
        values.put("name","zyx");
        db.update("student",values,"name=? and age=?",new String[]{name,age+""});
    }

7.如何查询数据?

private void selectstudent() {
        MySQLiteHelper mysqliteHelper=new MySQLiteHelper(this,"student_db",null,1);
        SQLiteDatabase db=mysqliteHelper.getReadableDatabase();

        Cursor cursor=db.query("student",null,null,null,null,null,null);
        cursor.moveToFirst();
        mysqlList.clear();
       do{
           int id=cursor.getInt(cursor.getColumnIndex("id"));
           String name=cursor.getString(cursor.getColumnIndex("name"));
           int age=cursor.getInt(cursor.getColumnIndex("age"));

           MySQL s=new MySQL(name,id,age);
           mysqlList.add(s);
           Log.e("selectstudent",name+"-"+age+"-");
        }while (cursor.moveToNext());
        sqladapter=new SQLAdapter(SQLActivity.this,mysqlList);
        listView.setAdapter(sqladapter);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值