android中的数据存储方式(二)SQLite

来源:互联网 发布:手机开淘宝店下载什么软件 编辑:程序博客网 时间:2024/05/19 11:20

对于sqlite也是第一次接触,本来不打算出这篇博客,但是原谅我的强迫症吧,可能内容比较少。以后边学习边更新。

然后再说一下我对sqlite的理解:它就是一个超轻量级别的数据库。轻到什么程度上呢,它基本不用自己写sql语句,用已经封装好的方法就可以了,存储方法就是在手机上存储了,和“android中的数据存储方式(一)”中说到的文件存储方法的文件存储位置差不多。


① 先写个sqlite辅助类:

public class DatabaseHelper extends SQLiteOpenHelper {    static int VERSION = 1;    public DatabaseHelper(Context context, String name, CursorFactory factory,            int version) {        super(context, name, factory, version);    }    //创建数据库调用此构造函数    public DatabaseHelper(Context context, String name) {        this(context, name, VERSION);    }    //更新数据库版本调用此构造函数    public DatabaseHelper(Context context, String name, int version) {        this(context, name, null, version);    }    @Override    public void onCreate(SQLiteDatabase db) {        // 创建数据库sql语句        String sql = "CREATE TABLE user (id int PRIMARY KEY,name varchar(20))";        // 把id设置为主键        // 执行数据库操作        db.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}

②创建数据库并建表、对数据的增删查改:

//创建数据库并建表的代码DatabaseHelper dbHelper1 = new DatabaseHelper(MainActivity.this,"zwq");            // 取得一个只读的数据库对象            SQLiteDatabase db1 = dbHelper1.getReadableDatabase();

//增加数据//创建存放数据的ContentValues对象            ContentValues cv1 = new ContentValues();            //向对象中放入数据            cv1.put("id", 1);            cv1.put("name", "nihao");            DatabaseHelper dbHelper3 = new DatabaseHelper(MainActivity.this,"zwq");            SQLiteDatabase db3 = dbHelper3.getWritableDatabase();            long a = db3.insert("user", null, cv1);            /*a如果返回-1,则证明数据插入失败;返回正数表示插入了几条数据*/

//更新数据代码:DatabaseHelper dbHelper4 = new DatabaseHelper(MainActivity.this,"zwq");            SQLiteDatabase db4 = dbHelper4.getWritableDatabase();            ContentValues cv2 =  new ContentValues();            cv2.put("name", "你好");            long b = db4.update("user", cv2, "id=?", new String[]{"1"});            /*b表示了更新了几行*/

//查询数据DatabaseHelper dbHelper5 = new DatabaseHelper(MainActivity.this,"zwq");            SQLiteDatabase db5 = dbHelper5.getReadableDatabase();             //创建游标对象             Cursor cursor = db5.query("user", new String[]{"id","name"},                     "id=?", new String[]{"1"}, null, null, null,null);            //利用游标遍历所有数据对象             while(cursor.moveToNext()){                String name = cursor.getString(cursor.getColumnIndex("name"));  }//读取游标数据的第二种方法/*if (cursor.moveToFirst()) {            for (int i = 0; i < cursor.getCount(); i++) {                cursor.moveToPosition(i);                String name = cursor.getString(cursor.getColumnIndex("name"));            }        }*//*如果不明白游标百度吧,就是个用来存放数据的一个类,变量name就是最后获得的数据*/

//删除数据DatabaseHelper dbHelper6 = new DatabaseHelper(MainActivity.this,"zwq");            SQLiteDatabase db6 = dbHelper6.getWritableDatabase();            long c = db6.delete("user", "id=?", new String[]{"1"});            /*c表示删除了几行数据*/

sqlite是不是很简单?确实是很简单。。。

我有空还想研究研究sqlite版本更新到底有什么用,我没有研究透所以代码就不放了。

如果还有强迫症的同志们,非要在手机上看到数据库的变化,就去我的另一篇博客”android中的数据存储方式(一)”看看吧~~大概是在最后的位置。


前几天用这个东西中招了,真的是活活纠结了一天,结果得出的结论就是建库的问题,建议在做测试的时候如果对建库建表进行修改的时候,在运行前先把以前的APP删掉


参考代码:

http://download.csdn.net/detail/zhengyikuangge/9508207

0 0