安卓开发笔记01:SQLite数据库总结

最近刚入门安卓数据库开发,记录一下行之有效安卓SQLite数据库操作方法。

数据库的创建、查询:

  1. 创建空SQLiteDatabase对象:在Mainactivity类的最上面,
SQLiteDatabase db = null;
  1. 在MainActivity类的onCreate方法里面,为db赋实际值:(onCreate中)
db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/TEST.DB", null);

TEST.DB是数据库的名字;
3. 接下来,若要在onCreate的时候就查询数据库,则有两种情况,一是数据库未创建,则需要创建一个;而是数据库已经创建,则直接查询即可,如下:(onCreate中)

try{
            Cursor cursor = db.rawQuery("SELECT * FROM TASK", null);
            while (cursor.moveToNext()){  listdata.add(cursor.getString(cursor.getColumnIndex("TASK")));
            }
        }catch (Exception e){
            String sql_create = "CREATE TABLE TASK(ID INTEGER PRIMARY KEY AUTOINCREMENT, TASK CHAR(255), DESP CHAR(255))";
            db.execSQL(sql_create);
            Cursor cursor = db.rawQuery("SELECT * FROM TASK", null);
            while (cursor.moveToNext()){
                System.out.println(cursor.getString(cursor.getColumnIndex("TASK")));
                listdata.add(cursor.getString(cursor.getColumnIndex("TASK")));
            }
        }

如上代码,原理是使用cursor,接受db.rawQuery的返回值,rawQuery是查询语句。将查询到的结果打印出来,用的是while循环加上cursor.moveToNext()。而例如,将TASK列的值取出,所用的代码是

cursor.getString(cursor.getColumnIndex("TASK"))

此处,如果要把数据用列表显示出来,则

listdata.add(cursor.getString(cursor.getColumnIndex("TASK")));

就可以了。
我会专门写一个博客记录ListView的使用方法。
4. 对了,还要在MainActivity类中重写一个getFilesDir的方法:
添加以下代码:

@Override
    public File getFilesDir() {
        return super.getFilesDir();
    }
  1. 别忘了最前面引入库!
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

数据库INSERT(增)的方法:

在MainActivity中添加:

private void insertData(SQLiteDatabase db, String task, String desp){
        db.execSQL("INSERT INTO TASK (TASK, DESP) VALUES (?, ?)", new String[]{task, desp});
        System.out.println("insert a row!");
    }

这个函数。当然INSERT的SQL语句是自己的情况而定,在这里默认大家已经学会SQL语句的使用了。添加完这个函数,就可以在例如按钮监听器的回调函数中调用来添加数据库记录了!
第一个参数为db对象,后面为字段名,自己摸索~
当然,传入db对象的前提是,db已经在onCreate方法中赋予了实际值~

数据库DELETE(删)的方法:

添加如下方法到MainActivity中:

private void deleteData(SQLiteDatabase db, String task){
        db.execSQL("DELETE FROM TASK WHERE TASK=?", new String[]{task});
        System.out.println("delete a row!");
    }

在回调函数中,就可以调用了,同样,第一个参数为db对象,后面的参数为字段名

数据库UPDATE(改)的方法:

同理,添加下面代码到MainActivity中,就可以了~调用时同样,db为数据库对象。

private void updateData(SQLiteDatabase db, String task){
        db.execSQL("UPDATE TASK SET COM=1 WHERE TASK=?", new String[]{task});
        System.out.println("update a row!");
    }

总结

总结一下,数据库查询用的是cursor,遍历查询结果可以使用while+cursor.moveToNext(),cursor接收db.rawQuery的查询语句返回值;
删改查直接用db.execSQL(SQL语句)。不需要接受返回值,原因可能是exec可以省去commit吧~

希望可以帮到大家~如果有错误和疑问欢迎指正和提出~
工作邮箱:yixiaolan@foxmail.com

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值