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语句的书写.
下节见.

浙公网安备 33010602011771号