sqlite操作
首先是创建sqliteOpenHelper的实现类;
需要重写onCreate()
@Override@H_301_8@
public@H_301_8@ void@H_301_8@ onCreate@H_301_8@(sqliteDatabase db) {
db.execsql(CREATE_BOOK);
db.execsql(CREATE_CATEGORY);
Toast.makeText(context,"数据库创建成功"@H_301_8@,Toast.LENGTH_LONG).show();
}
和onUpgrade()
@Override@H_301_8@
public@H_301_8@ void@H_301_8@ onUpgrade@H_301_8@(sqliteDatabase db,int@H_301_8@ oldVersion,int@H_301_8@ newVersion) {
db.execsql("drop table if exists Book"@H_301_8@);
db.execsql("drop table if exists Category"@H_301_8@);//增加的表@H_301_8@
onCreate(db);
}
两个方法;
onUpgrade()这个方法在数据库更新的时候会自动调用;
public static String CREATE_BOOK="create@H_301_8@ table@H_301_8@ Book ( id integer@H_301_8@ primary@H_301_8@ key@H_301_8@ autoincrement,auther text,price real@H_301_8@,pages integer@H_301_8@,name text )"; @H_301_8@@H_301_8@
上述代码是创建一个数据库中的 Book 表;
添加一个构造方法:
public@H_301_8@ MyDataBaseHelper@H_301_8@(Context context,String name,CursorFactory factory,int@H_301_8@ version) {
super@H_301_8@(context,name,factory,version);
this@H_301_8@ .context=context;
// TODO Auto-generated constructor stub@H_301_8@
}
在MainActivity.class中创建sqliteOpenHelper的实现类;
myDataBaseHelper=new@H_301_8@ MyDataBaseHelper(this@H_301_8@,"BookStore.db"@H_301_8@,null@H_301_8@,3@H_301_8@);
参数1代表的是上下文对象
参数2代表的是要创建的数据表的名字
参数3代表的是CursorFactory 一般都写为null
参数4代表的是数据的版本;
增:
sqliteOpenHelper的实现类调用getWritableDatabase()方法得到一个sqliteDataBase对象;
sqliteDatabase db@H_301_8@=myDataBaseHelper.getWritableDatabase();@H_301_8@
ContentValues values@H_301_8@=new ContentValues();
values@H_301_8@.put("name"@H_301_8@,"安卓基础"@H_301_8@);
values@H_301_8@.put("auther"@H_301_8@,"老罗"@H_301_8@);
values@H_301_8@.put("price"@H_301_8@,57@H_301_8@);
values@H_301_8@.put("pages"@H_301_8@,670@H_301_8@);
db.insert("Book"@H_301_8@,null,values@H_301_8@);
db.insert("Book"@H_301_8@,values@H_301_8@);
db.delete@H_301_8@("Book"@H_301_8@,null@H_301_8@,null@H_301_8@);//全部删除了Book表中的数据@H_301_8@
改
把作者为老罗的书的价格改成了70;
ContentValues values2=new@H_301_8@ ContentValues();
values2.put("price"@H_301_8@,70@H_301_8@);
db.update("Book"@H_301_8@,values2,"auther=?"@H_301_8@,new@H_301_8@ String@H_301_8@[]{"老罗"@H_301_8@});
查
private List<Book> books=new ArrayList<Book>();@H_301_8@
...
Cursor cursor=db.query@H_301_8@("Book"@H_301_8@,null);@H_301_8@
if (cursor.moveToFirst@H_301_8@()) {
books.clear@H_301_8@();@H_301_8@
do {
Book book=new Book();@H_301_8@
String name=cursor.getString@H_301_8@(cursor.getColumnIndex@H_301_8@("name"@H_301_8@));@H_301_8@
book.setName@H_301_8@(name);@H_301_8@
String auther=cursor.getString@H_301_8@(cursor.getColumnIndex@H_301_8@("auther"@H_301_8@));@H_301_8@
book.setAuther@H_301_8@(auther);@H_301_8@
double price=cursor.getDouble@H_301_8@(cursor.getColumnIndex@H_301_8@("price"@H_301_8@));@H_301_8@
book.setPrice@H_301_8@(price);@H_301_8@
int pages=cursor.getInt@H_301_8@(cursor.getColumnIndex@H_301_8@("pages"@H_301_8@));@H_301_8@
book.setPages@H_301_8@(pages);@H_301_8@
books.add@H_301_8@(book);@H_301_8@
} while (cursor.moveToNext@H_301_8@()) ;@H_301_8@
}
把Book表中的数据全部读出来;并添加到了一个list集合中;
写了一个Book实体类
public@H_301_8@ class@H_301_8@ Book {
private@H_301_8@ String name;
private@H_301_8@ String auther;
private@H_301_8@ int@H_301_8@ pages;
private@H_301_8@ double@H_301_8@ price;
public@H_301_8@ String getName@H_301_8@() {
return@H_301_8@ name;
}
public@H_301_8@ void@H_301_8@ setName@H_301_8@(String name) {
this@H_301_8@.name = name;
}
public@H_301_8@ String getAuther@H_301_8@() {
return@H_301_8@ auther;
}
public@H_301_8@ void@H_301_8@ setAuther@H_301_8@(String auther) {
this@H_301_8@.auther = auther;
}
public@H_301_8@ int@H_301_8@ getPages@H_301_8@() {
return@H_301_8@ pages;
}
public@H_301_8@ void@H_301_8@ setPages@H_301_8@(int@H_301_8@ pages) {
this@H_301_8@.pages = pages;
}
public@H_301_8@ double@H_301_8@ getPrice@H_301_8@() {
return@H_301_8@ price;
}
public@H_301_8@ void@H_301_8@ setPrice@H_301_8@(double@H_301_8@ price) {
this@H_301_8@.price = price;
}
@Override
public@H_301_8@ String toString@H_301_8@() {
return@H_301_8@ "Book [name="@H_301_8@ + name + ",auther="@H_301_8@ + auther + ",pages="@H_301_8@ + pages
+ ",price="@H_301_8@ + price + "]"@H_301_8@;
}
}