a ) SQLiteOpenHelper
继承SQLiteOpenHelper ( 注意:一定要在主函数里面调用getWritableDatabase(),才会在数据库里创建表格)重写方法(1)构造方法//自定义数据名字和版本private final static String DATABASE_NAME = "mydb.db";private final static int DATABASE_VERSION = 2;public 类名(Context context ) {super(context, DATABASE_NAME , null, DATABASE_VERSION );(2)onCreate}@Overridepublic void onCreate(SQLiteDatabase db) {//TODO 这里创建表格,_id name age//语法:"create table if not exists 表名(_id integer primary key autoincrement,列名1 varchar(64),列名2 varchar(64))"String sql ="创建表格语句";db.execSQL(sql);}
(3)onUpgrade@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//TODO 版本升级,添加列名if(newVersion >oldVersion){String sql1 ="alter table students add 列名 varchar(64)";db.execSQL(sql1);}}
b)SQLiteDatebase
(1)增、删、改 (SQLiteDatabase db)
db. execSQL(sql, bindArgs);//增"insert into 表名(列名1,列名2,列名3) values(?,?,?)"//删"delete from 表名 where _id=?"//改"update 表名 set 列名1=?, 列名2=?, 列名3=? where _id=?"//查"select _id,列名1,列名2,列名3 from 表名""select * from 表名"
(2)查 (SQLiteDatabase db)
c)SimpleCursorAdapter//1、用rawQuery( , )来查询,得到一个CursorCursor cursor = db. rawQuery(sql,selectionArgs);//2、解读cursor,用一个List<Map<String, Object>>来接收数据List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();// 获取列的数量int counts = cursor. getColumnCount();while (cursor. moveToNext()) {Map<String, Object> map = new HashMap<String, Object>();//游标遍历,得到数据for (int i = 0; i < counts; i++) {String key = cursor.getColumnName(i);String values = cursor.getString(i);map.put( key, values);}list.add( map);
SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) //最后一个参数是标签,随便填一个int// 注意 :数据更新时,要先交换cursoradapter. swapCursor(cursor);adapter.notifyDataSetChanged();
d)使用API来操作数据库
SQL:
//创建" create table if not exists 表名(_id integer primary key autoincrement,列名1 varchar(64),列名2 varchar(64))"//添加列名" alter table 表名 add 列名3 varchar(64)"//增" insert into 表名(列名1,列名2,列名3) values(?,?,?)"//删" delete from 表名 where _id=?"//改" update 表名 set 列名1=?,列名2=?,列名3=? where _id=?"//查" select _id,列名1,列名2,列名3 from 表名"" select * from 表名"
API:
//增 -1为失败long " insert(String table, String nullColumnHack, ContentValues values)"//删 大于0成功int " delete(String table, String whereClause, String[] whereArgs)"//改 大于0成功int " update(String table, ContentValues values, String whereClause, String[] whereArgs)"//查Cursor " query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)" //后面四个参数填"null"