- SQLiteOpenHelper抽象类
- 该方法通常用4个参数的构造方法
通过得到实例后调用getWritableDatabase() || getReadableDatabase() 来创建和打开数据库!!
~~直接用栗子:
public class KnowDBOpenHelper extends SQLiteOpenHelper{
public static final String CREATE_STORIES = "create table Stories("
+ "id_first integer primary key autoincrement"
+ "id text, "
+ "images text, "
+ "title text)";
public KnowDBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_STORIES);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch(oldVersion){
case 1:
db.execSQL(CREATE_TWOTABLE);
case 2:
db.execSQL("alter table Book add colum two_table integer");
default:
}
}
}
ContentValues values = new ContentValues();
values.put("id",222222);
values.put("title","今天什么天气");
values.put("images","http:..22...jpg");
db.insert("Stories",null , null);
values.clear();;
values.put("id",66666);
values.put("title","明天什么天气");
values.put("images","http:..33...jpg");
db.insert("Stories",null , null);
ContentValues values = new ContentValues();
values.put("title","后天什么天气");
values.put("images","http:....444...jpg");
db.update("Stories",values,"id= ?",
new String[]{"666666"});
db.delete("Stories",null,null);
db.delete("Stories","id = ?",new String[]{"222222"});
Cursor cursor = db.query("Stories",null , null,null,null,null,null);
List<Stories> list = new ArrayList<Stories>();
if(cursor.moveToFirst()){
do{
int id = cursor.getInt(cursor.getColumnIndex("id"));
String title = cursor.getString(cursor.getColumnIndex("title"));
String images = cursor.getString(cursor.getColumnIndex("images"));
Stories story = new Stories(id, title, images);
list.add(story);
}while (cursor.moveToNext());
}
cursor.close();
return list;
}
- 下面方法是吧数据的操作封装起来使用的实战操作!!复用性!
public class KnowDB {
public static final String DB_NAME = "myknow";
public static final int VERSION = 1;
private static KnowDB knowDB;
private SQLiteDatabase db;
private KnowDB (Context context){
KnowDBOpenHelper dbOpenHelper = new KnowDBOpenHelper(context,DB_NAME, null, VERSION);
db = dbOpenHelper.getWritableDatabase();
}
public synchronized static KnowDB getIntance(Context context){
if(knowDB == null){
knowDB = new KnowDB(context);
}
return knowDB ;
}
public void saveStories(Stories stories){
if(stories != null){
ContentValues values = new ContentValues();
values.put("id", stories.getId());
values.put("images",stories.getImages());
values.put("title",stories.getTitle());
db.insert("Stories", null , values);
}
}
public List<Stories> loadStories(){
List<Stories> list = new ArrayList<Stories>();
Cursor cursor = db.query("Stories",null , null ,null ,null, null, null);
if(cursor.moveToFirst()){
do{
Stories stories = new Stories() ;
stories.setId(cursor.getInt(cursor.getColumnIndex("id")));
stories.setImages(cursor.getString(cursor.getColumnIndex("images")));
stories.setTitle(cursor.getString(cursor.getColumnIndex("title")));
list.add(stories);
}while (cursor.moveToNext());
if(cursor != null){
cursor.close();
}
}
return list;
}
public void deleteStories(){
db.delete("Stories",null ,null);
}
}
KnowDBOpenHelper knowHelper = new KnowDBOpenHelper(this, "Database.db", null, 1);
SQLiteDatabase db = knowHelper.getWritableDatabase();
db.beginTransaction();
try {
db.delete("Stories",null,null);
ContentValues values = new ContentValues();
values.put("id",45862);
values.put("title","今天什么天气");
values.put("images","http:..22...jpg");
db.insert("Stories",null , null);
db.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
}finally {
db.endTransaction();
}
}