Android成长日记-数据存储之SQLite[2]
Part one:
首先看这样一段代码
1 SQLiteDatabase db=openOrCreateDatabase("SQLDemo.db", MODE_PRIVATE,null); 2 //创建表 3 String create_sql="create table if not exists SQLTb(_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)"; 4 db.execSQL(create_sql); 5 db.execSQL("insert into SQLTb(name,sex,age) values(‘张三‘,‘男‘,‘19‘)"); 6 db.execSQL("insert into SQLTb(name,sex,age) values(‘李四‘,‘男‘,‘20‘)"); 7 8 Cursor c=db.rawQuery("select * from SQLTb",null); 9 if(c!=null) 10 { 11 while(c.moveToNext()) 12 { 13 Log.i("info", "_id"+c.getInt(c.getColumnIndex("_id"))); 14 Log.i("info", "name"+c.getString(c.getColumnIndex("name"))); 15 Log.i("info", "sex"+c.getString(c.getColumnIndex("sex"))); 16 Log.i("info", "age"+c.getInt(c.getColumnIndex("age"))); 17 Log.i("info","-------------------------------------------------"); 18 } 19 c.close(); 20 } 21 db.close(); 22 }
PS:
①:openOrCreateDatabase(name, mode, factory):创建数据库数据库,返回值为SQLiteDatabase
name:数据库的名字 mode:数据库的类型 factory:为了可以自定义Cursor创建
②:execSQL() 此方法为执行数据库的语句
③:rawQuery() 此方法用来查询数据库的信息,返回值为一个Cursor对象
④:在用moveToNext()进行遍历结束后需要进行关闭,数据库使用结束后也需要进行关闭,以起到节约内存的作用
缺点:这种方法需要了解数据库的一些知识。
---------------------------------------华丽分割线---------------------------------------------------
Part Two:
1 SQLiteDatabase db=openOrCreateDatabase("stu.db",MODE_PRIVATE, null); 2 String create="create table if not exists stuTb(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)"; 3 db.execSQL(create);//创建表 4 /* 5 * 在数据库的表中插入数据 6 */ 7 ContentValues values=new ContentValues(); 8 values.put("name", "张三"); //键值对的形式 键:数据库列名 值:对应列的内容 9 values.put("age", 18); 10 values.put("sex","男"); 11 db.insert("stuTb", null, values); //返回值为long型的数据,为行的id 12 values.clear(); //清除键值对的数据 13 values.put("name", "李四"); 14 values.put("age",19); 15 values.put("sex","女"); 16 db.insert("stuTb", null, values); 17 values.clear(); 18 values.put("name", "王五"); 19 values.put("age", 21); 20 values.put("sex", "男"); 21 db.insert("stuTb", null, values); 22 values.clear(); 23 /* 24 * 在数据库中更新数据 25 */ 26 values.put("sex","女"); 27 //db.update(table, values, whereClause, whereArgs) 28 db.update("stuTb", values, "_id>?", new String[]{"2"});//将全部id>2的sex改成女 29 /* 30 * 在数据库中删除数据 31 */ 32 //db.delete(table, whereClause, whereArgs) 33 db.delete("stuTb", "name like ?", new String[]{"%三%"}); //将名字中带有三的数据删除 34 /* 35 * 在数据库中查询数据 36 */ 37 //db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy) 38 Cursor c=db.query("stuTb", null, "_id>?", new String[]{"0"}, null, null, "name");//将id>0的数据按照名字排列 39 if(c!=null) 40 { 41 String[] columns=c.getColumnNames(); 42 while(c.moveToNext()) 43 { 44 //得到一行数据 45 for(String columnsName:columns) 46 { 47 Log.i("info", c.getString(c.getColumnIndex(columnsName))); 48 } 49 } 50 c.close(); 51 } 52 db.close(); 53 }
PS:
①插入:db.insert(table, nullColumnHack, values) //参数分别对应:表名,默认值,values值
在values值是存储的ContentValues类型的数据,所以应该创建对象:ContentValues values = new ContentValues();
values.put(“列名”,”内容”);
②更新:db.update(table, values, whereClause, whereArgs) //参数分别对应:表名,更新的内容,条件,条件值(以数组类型new String[]{“内容”})
③删除:db.delete(table, whereClause, whereArgs) //参数分别对应:表名 条件,条件值
④查询:db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy) //参数分别对应:表名,查询的列数(null为全部),条件,条件值(以数组类型new String[]{“内容”}),分组,<默认为null>,规则排序 ------>>返回值为Cursor类型的数据
⑤注意:数据库的信息在使用结束要及时关闭
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。