Android(安卓)—— SQLite数据库简易使用
16lz
2021-12-15
最近在学习Android移动应用开发,按照书上的案例进行学习,并将一些数据库的操作流程进行整理归纳,若有错误,请大牛指正。由于Android的数据库可视化操作需要下载插件而且收费,所以所有对数据库的操作只能通过代码进行。
包的创建如下图所示:
数据库的最开始操作,便是创建数据表,这样才能存入关联数据。由于要使用自定义的一些功能,于是我继承基类SQLiteOpenHelper,具体代码如下:(MyHelper.java)
public class MyHelper extends SQLiteOpenHelper { public MyHelper (Context context){ super(context, "littlefarmer.db", null, 3); } public void onCreate(SQLiteDatabase db){ //创建表 System.out.println("onCreate"); db.execSQL("create table products (id INTEGER PRIMARY KEY, " + //序号 "name VARCHAR(20), " + //农作物名称 "status VARCHAR(20), " + //农作物状态 "distribution VARCHAR(2))"); //种植区域 } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ //更新表 System.out.println("onUpgrade"); } public void onDelete(SQLiteDatabase db){ //删除表 System.out.println("onDelete"); db.execSQL("drop table products"); }}
(1)创建数据库 构造方法MyHelper():使用super()构造父类,父类的构造方法为SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version),总共4个参数。第1参数由调用构造方法的页面给入;第2参数为创建的数据库名称;第3参数通常为null;第4参数为版本号,最小为1。
(2)创建数据表/删除数据表
创建表格时,调用SQLiteDatabase类的execSQL()方法执行SQL语句创建数据表。删除同创建。
因为需要对数据进行交互和暂存,所以创建了bean包用于数据的交互。具体代码如下所示:(products.java)
public class products { private long id; private String name; private String status; private String distribution; public products(long id, String name, String status, String distribution) { super(); this.id = id; this.name = name; this.status = status; this.distribution = distribution; } public products(String name, String status, String distribution){ super();; this.name = name; this.status = status; this.distribution = distribution; } public products() { super(); } public String toString(){ return "[序号:" + id + ",农作物名称:" + name + ",农作物状态:" + status + ",种植区域:" + distribution + "]"; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getDistribution() { return distribution; } public void setDistribution(String distribution) { this.distribution = distribution; }}
准备工作做完之后,便可以对具体的数据操作(增删改查)进行编写了:(productsdao.java)
(1)获取数据库
private MyHelper helper; public productsDao(Context context){ //创建Dao时,创建Helper helper = new MyHelper(context); }
(2)编写具体数据操作(以insert为例)
public void insert(products products){ //获取数据库对象 SQLiteDatabase db = helper.getWritableDatabase(); //用来装载要插入的数据的Map<列名,列值> ContentValues values = new ContentValues(); values.put("name",products.getName()); values.put("status",products.getStatus()); values.put("distribution",products.getDistribution()); //向products表插入数据valuse long id = db.insert("products", null, values); products.setId(id); db.close(); }
①获取数据库对象——通过之前获取的数据库helper,使用getWritableDatabase(),创建一个可读写的实例 ②创建ContentValues类的对象存储需要插入的数据
③使用SQLiteDatabase类的insert()方法,添加一条数据记录到数据表,并返回该条数据记录所处的位置ID
更多相关文章
- android MVC结构探讨
- Android文档(三)-数据存储
- Android数字签名的创建
- Android中SQLite应用详解
- android中Intent传值与Bundle传值详解
- Android开发教程02:Android四大组件简介
- (三)Android数据结构学习之队列
- android中导入数据
- mybatisplus的坑 insert标签insert into select无参数问题的解决