Android Sqite数据库 <1>

一直想写一个android数据操作的系列笔记,由于事情TMD的多,来不及搞这些飞机.

Android系统提供了多种储存数据的方式,其中这里首先介绍Sqlite.Sqlite和在windows以及linux系统安装的mysql有几分相像.

如果直接执行sql语句,那么基本操作的语法差不多.基本执行的步骤如下:

<1> 创建以及打开数据库:

private SQLiteDatabase db;
db = SQLiteDatabase.openOrCreateDatabase(getFilesDir().toString()
                    + "/user.db", null);

<2> 创建并且打开数据库:

private String CREATE_TABLE = "create table t_user(id INTEGER PRIMARY KEY,u_name TEXT,u_pwd TEXT)";

执行: 创建一个表 : t_user,有三个字段id,u_name,u_pwd

db.execSQL(CREATE_TABLE);

<3> : 上面搞定了以后,就可以添加删除之类的操作了,先插入数据:

db.execSQL("insert into t_user(u_name,u_pwd) values(?,?)",
                    new String[] { "zhangsan", "123" });
            db.execSQL("insert into t_user(u_name,u_pwd) values(?,?)",
                    new String[] { "lisi", "234" });
            db.execSQL("insert into t_user(u_name,u_pwd) values(?,?)",
                    new String[] { "wangwu", "345" });

<4> : 数据库中有了数据就可以执行删除数据:下面根据条件进行删除,根据主键id=2:

db.execSQL("delete from t_user where id=?", new String[] { 2 + "" });

<5> : 查询数据,android同样提供了一个游标Cursor,执行查询语句后返回一个Cursor对象,根据游标循环列举出数据记录:
执行查询,并且获得游标:下面没有设置条件查询,后面的null是条件String[]型.

Cursor cursor = db.rawQuery("select *from t_user", null);

获得游标对象后,首先要将游标设置在第一条记录那里:

cursor.moveToFirst();

然后开始一条一条的读取数据:

while (cursor.moveToNext()) {
                int id = cursor.getInt(cursor.getColumnIndex("id"));
                String name = cursor.getString(cursor.getColumnIndex("u_name"));
                String pwd = cursor.getString(cursor.getColumnIndex("u_pwd"));
                sb.append(id + " " + name + " " + pwd + "\n");
            }

<6> 删除了数据,查询了数据,经常要添加数据和更新数据:

db.execSQL("update t_user set nickname=? where id=?", new String[] {
                    "stephen", 4 + "" });

<7> 如果突然有一天发现还需要添加字段,比如这个人的nickname也要记录,那么就需要添加字段:

db.execSQL("Alter table t_user add column nickname TEXT");

<8> 操作了数据库,最终完成后还需要关闭:

db.close();

 

以上即是android最原始的方式操作数据,但是一般使用时,不会这么麻烦,开发的人不一定很会写sql语句,那么android就提供了其他方式进行操作,避免sql语句的书写.

下节见.

 

 

 

 

 

posted @ 2014-03-26 23:30  MMLoveMeMM  阅读(248)  评论(0)    收藏  举报