Android中Sqlite使用

本文介绍了在Android项目中如何使用SQLite数据库,包括创建CarDBHelper数据库辅助类、定义Car实体类以及创建CarTableOperate类来操作数据表。内容侧重于数据库的创建和在实际汽车项目中的应用。

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

SQLite使用

最近在做一个汽车项目,就拿这个项目当例子

创建CarDBHelper类用于创建数据库

public class CarDBHelper extends SQLiteOpenHelper {
    //类没有实例化,是不能用作父类构造器的参数,必须声明为静态
//数据库名称 为了使用第三方软件打开数据库,最后加上后缀名
    private static final String DATABASENAME = "mydb.db"; //数据库名称
    private static final String TABLE_NAME = "cars";

    private static final int DATABASEVERSION = 1; //数据库版本

    public CarDBHelper(Context context) {
        //第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类
        super(context, DATABASENAME, null, DATABASEVERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table if not exists " + TABLE_NAME + "(id integer primary key,carid integer,name varchar(50),initial varchar(50),parentid integer,logo varchar(300),depth integer);";
        db.execSQL(sql);
        Log.e("db", "ok");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
        db.execSQL(sql);
        onCreate(db);
    }

    //访问器
    public static String getDataBasename() {
        return DATABASENAME;
    }

    public static int getDataBaseversion() {
        return DATABASEVERSION;
    }

    public static String getTablename() {
        return TABLE_NAME;
    }
}

创建Car实体类

public class Car implements Serializable {
    private int id;
    private String name;//名称
    private String initial;//首字母
    private int parentid;//父级ID
    private String logo;
    private int depth;//深度 1品牌 2子公司 3车型 4具体车型

    public Car() {
    }

    public Car(int id, String name, String initial, int parentid, String logo, int depth) {
        this.id = id;
        this.name = name;
        this.initial = initial;
        this.parentid = parentid;
        this.logo = logo;
        this.depth = depth;
    }

    public int getDepth() {
        return depth;
    }

    public void setDepth(int depth) {
        this.depth = depth;
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getInitial() {
        return initial;
    }

    public void setInitial(String initial) {
        this.initial = initial;
    }

    public int getParentid() {
        return parentid;
    }

    public void setParentid(int parentid) {
        this.parentid = parentid;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    @Override
    public String toString() {
        return "Car{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", initial='" + initial + '\'' +
                ", parentid=" + parentid +
                ", logo='" + logo + '\'' +
                ", depth=" + depth +
                '}';
    }
}
创建CarTableOperate用于对表的操作
public class CarTableOperate {
    //声明数据库辅助类对象
    public CarDBHelper mHelper;
    //声明一个数据库操作类
    private SQLiteDatabase db = null;
    //声明一个游标接口对象,用来遍历查询结果
    public Cursor mCursor = null;

    public CarTableOperate(Context context) {
        mHelper = new CarDBHelper(context);
    }

    //向car表中添加数据
    public void insertData(Car car) {
        //使用sqlitedatabase自带的插入方法
        db = mHelper.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("CarId", car.getCar_id());
        cv.put("CarName", car.getCar_name());
        cv.put("ParentId", car.getParentid());
        cv.put("CarLogo", car.getCar_logo());
        cv.put("Depth", car.getCar_depth());
        db.insert(CarDBHelper.getTablename(), null, cv);
        //关闭连接,释放资源
        db.close();
    }

    //删除car表中的所有数据
    public void deleteAllMusic() {
        db = mHelper.getWritableDatabase();
        db.delete(CarDBHelper.getTablename(), null, null);
        db.close();
    }

    //查询 car表中的所有数据
    public List<Car> selectAllCar() {
        List<Car> mList = new ArrayList<>();
        Car car = null;
        db = mHelper.getWritableDatabase();
        mCursor = db.rawQuery("select * from cars order by id desc", null);
        while (mCursor.moveToNext()) {
            int id = mCursor.getInt(0);
            int car_id = mCursor.getInt(1);
            String car_name = mCursor.getString(2);
            String car_initial = mCursor.getString(3);
            int parentId = mCursor.getInt(4);
            String car_logo = mCursor.getString(5);
            int depth = mCursor.getInt(6);
            car = new Car(car_id, car_name, car_initial, parentId, car_logo, depth);
            mList.add(car);
        }
        mCursor.close();
        db.close();
        return mList;
    }
}

接下来就是在activity中使用了数据主要是在极速数据上面的接口

List<Car> mCars=new ArrayList<>();
CarTableOperate mCarTableOperate = new CarTableOperate(context);
mCars = mCarTableOperate.selectAllCar();

看看运行截图
运行结果

生成的数据库文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值