自定义类继承SQLiteOpenHelper,主要 要写的是 构造方法、onCreate、onUpgrade。
1、数据库的创建:
一般在onCreate中调用db.execSQL(String ); 创建数据库,String 表示数据库的内容,如:
"create table Ticket("
+"busTicketId integer primary key,"+
"purchaseDate integer,"+
"useDate integer,"+
"busName String,"+
"fare interger)";
说明 大小写均可、BLOB 二进制数据,interger 数字、primary key 主键、AUTOINCREMENT 自增。
2、使用
实例化自定义的SQLiteOpenHelper,用getWritableDatabase(如果只读也可以用getReadable)方法获取SQLiteDatabase实例。
读取数据:
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit);
分别是表明、列明、筛选条件、筛选数值、分组、having、排序,限制。
返回值是cursor,注意取数据之前检查是否为空,用movetofirst或者movetonext的方法。
cursor使用:cursor.getXXX(cursor.getColumnIndex("name"))。
写/替代数据:
values.put("userid",cursor.getInt(cursor.getColumnIndex("userid")));
values.put("context",cursor.getString(cursor.getColumnIndex("context")));
values.put("date",cursor.getLong(cursor.getColumnIndex("date")));
values.put("ishost",cursor.getInt(cursor.getColumnIndex("ishost")));
values.put("isread",1);
sqLiteDatabase.replace("Message", null,values);
3、其他
1、用blob存储图片
Bitmap bm = xxx;
ByteArrayOutputStreambaos =newByteArrayOutputStream();
baos =newByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG,100,baos);
values.put("photo",baos.toByteArray());
读取
byte[] pic = cursor.getBlob(cursor.getColumnIndex("photo"));
Bitmap bm = BitmapFactory.decodeByteArray(pic,0,pic.length);