android 数据库操作
2011-03-12 13:43
453 查看
From : http://daixj110.javaeye.com/blog/890532
另一篇:http://database.51cto.com/art/200903/113334.htm
Databasehelper代码
public class DatabaseHelper extends SQLiteOpenHelper {
private final static String NAME="sharp.db"
;
//Factory:代表记录集游标工厂,是专门用来生成记录集游标,记录集游标是对查询结果进行迭代的,后面我们会继续介绍。
public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
public DatabaseHelper(Context context){
super(context, NAME, null, 1
);
}
/**
* 用户第一次使用软件时调用,实现数据库的操作crud
*/
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
Log.i("save"
,
"create"
);
db.execSQL("create table person(personid integer primary key autoincrement,name varcahr(20),age integer)"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("drop table if exists person"
);
onCreate(db);
}
/**
* 根据版本号进行更新
* @param db
* @param mNewVersion
*/
public void checkVersionCreate(SQLiteDatabase db,int mNewVersion){
int version = db.getVersion();
if (version != mNewVersion) {
db.beginTransaction();
try {
if (version == 0
) {
onCreate(db);
}else{
onUpgrade(db, version,mNewVersion);
}
db.setVersion(mNewVersion); //设置为新的版本号
db.setTransactionSuccessful();
}
finally{
db.endTransaction();
}
}
}
/**
* 数据库名不空,获得数据库实例
* @param mDatabase
* @param mContext
* @param mName
* @param mFactory
* @return
*/
public SQLiteDatabase getDatabase(SQLiteDatabase mDatabase,Context mContext,String mName,CursorFactory mFactory){
if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) {
return mDatabase; // The database is already open for business
}
if (mName == null) {
mDatabase = SQLiteDatabase.create(null);
} else {
mDatabase = mContext.openOrCreateDatabase(mName, 0
, mFactory);
}
return mDatabase;
}
}
DbService:
Java代码
public
class
DbService {
private
DatabaseHelper databaseHelper;
private
Context context;
public
DbService(Context context){
this
.context=context;
databaseHelper=new
DatabaseHelper(
this
.context);
}
//保存
public
void
save(Person person){
SQLiteDatabase db = databaseHelper.getWritableDatabase();
db.execSQL("insert into person(name, age) values(?,?)"
,
new
Object[]{person.getName(), person.getAge()});
}
//更新
public
void
update(Person person){
SQLiteDatabase db = databaseHelper.getWritableDatabase();
db.execSQL("update person set name=?,age=? where personid=?"
,
new
Object[]{person.getName(), person.getAge(),
person.getId()});
}
//根据id查找
public
Person find(Integer id){
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select personid,name,age from person where personid=?"
,
new
String[]{String.valueOf(id)});
if
(cursor.moveToNext()){
//迭代记录集
Person person = new
Person();
//实例化person
person.setId(cursor.getInt(cursor.getColumnIndex("personid"
)));
person.setName(cursor.getString(1
));
person.setAge(cursor.getInt(2
));
//将查到的字段,放入person,
return
person;
}
cursor.close();//游标关闭
return
null
;
}
//删除
public
void
delete(Integer id){
SQLiteDatabase db=databaseHelper.getWritableDatabase();
db.execSQL("delete from person where id=?"
,
new
Object[]{id});
}
//
public
List<Person> getScrollData(
int
firstResult,
int
maxResult){
List<Person> persons = new
ArrayList<Person>();
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select personid,name,age from person limit ?,?"
,
new
String[]{String.valueOf(firstResult),String.valueOf(maxResult)});
//firstResult开始索引
while
(cursor.moveToNext()){
//maxResult每页获取的记录数
Person person = new
Person();
person.setId(cursor.getInt(cursor.getColumnIndex("personid"
)));
person.setName(cursor.getString(1
));
person.setAge(cursor.getInt(2
));
persons.add(person);
}
cursor.close();
return
persons;
}
//
public
long
getCount(){
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select count(*) from person"
,
null
);
//没有占位符参数的话,直接用null
cursor.moveToFirst();
long
count = cursor.getLong(
0
);
cursor.close();
return
count;
}
//
public
void
close(){
databaseHelper.close();
}
}
Person:
Java代码
public
class
Person {
private
Integer id;
private
String name;
private
Integer age;
public
Person(){}
public
Person(String name,Integer age){
this
.name=name;
this
.age=age;
}
public
Integer getId() {
return
id;
}
public
void
setId(Integer id) {
this
.id = id;
}
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
public
Integer getAge() {
return
age;
}
public
void
setAge(Integer age) {
this
.age = age;
}
@Override
public
String toString() {
return
"Person [age="
+ age +
", id="
+ id +
", name="
+ name +
"]"
;
}
}
PersonServiceTest:
Java代码
public
class
PersonServiceTest
extends
AndroidTestCase{
public
void
testSave()
throws
Throwable{
//测试保存方法
DbService personService = new
DbService(
this
.getContext());
//传入上下文
Person person = new
Person(
"Tom"
,
21
);
personService.save(person);
}
}
一个activity:
Java代码
public
class
SqlLiteActivity
extends
Activity {
/** Called when the activity is first created. */
private
final
static
String TAG=
"PersonActivity"
;
private
ListView listView;
private
DbService personService;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView)findViewById(R.id.personList);
personService = new
DbService(
this
);
save(personService);
List<Person> persons = personService.getScrollData(0
,
3
);
//前十条数据
List<HashMap<String, String>> data = new
ArrayList<HashMap<String,String>>();
HashMap<String, String>title = new
HashMap<String, String>();
title.put("personid"
,
"编号"
);
title.put("name"
,
"姓名"
);
title.put("age"
,
"年龄"
);
data.add(title); //标题
for
(Person person : persons){
HashMap<String, String> map = new
HashMap<String, String>();
map.put("personid"
, String.valueOf(person.getId()));
map.put("name"
, person.getName());
map.put("age"
, String.valueOf(person.getAge()));
data.add(map); //显示各个数据
}
SimpleAdapter adapter = new
SimpleAdapter(SqlLiteActivity.
this
,
data, R.layout.personitem, new
String[]{
"personid"
,
"name"
,
"age"
},
new
int
[]{R.id.personid, R.id.name, R.id.age});
listView.setAdapter(adapter);
}
//
public
void
save(DbService service){
for
(
int
i=
0
;i<
5
;i++){
Person person=new
Person();
person.setName("d"
);
person.setAge(12
);
service.save(person);
}
}
}
main.xml<?xml version="1.0" encoding="utf-8"?>
Java代码
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/personList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></ListView>
</LinearLayout>
personitem.xml<?xml version="1.0" encoding="utf-8"?>
Java代码
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="60px"
android:layout_height="wrap_content"
android:id="@+id/personid"
/>
<TextView
android:layout_width="160px"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/personid"
android:layout_alignTop="@id/personid"
android:gravity="center_horizontal"
android:id="@+id/name"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/name"
android:layout_alignTop="@id/name"
android:id="@+id/age"
/>
</RelativeLayout>
另一篇:http://database.51cto.com/art/200903/113334.htm
Databasehelper代码
public class DatabaseHelper extends SQLiteOpenHelper {
private final static String NAME="sharp.db"
;
//Factory:代表记录集游标工厂,是专门用来生成记录集游标,记录集游标是对查询结果进行迭代的,后面我们会继续介绍。
public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
public DatabaseHelper(Context context){
super(context, NAME, null, 1
);
}
/**
* 用户第一次使用软件时调用,实现数据库的操作crud
*/
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
Log.i("save"
,
"create"
);
db.execSQL("create table person(personid integer primary key autoincrement,name varcahr(20),age integer)"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("drop table if exists person"
);
onCreate(db);
}
/**
* 根据版本号进行更新
* @param db
* @param mNewVersion
*/
public void checkVersionCreate(SQLiteDatabase db,int mNewVersion){
int version = db.getVersion();
if (version != mNewVersion) {
db.beginTransaction();
try {
if (version == 0
) {
onCreate(db);
}else{
onUpgrade(db, version,mNewVersion);
}
db.setVersion(mNewVersion); //设置为新的版本号
db.setTransactionSuccessful();
}
finally{
db.endTransaction();
}
}
}
/**
* 数据库名不空,获得数据库实例
* @param mDatabase
* @param mContext
* @param mName
* @param mFactory
* @return
*/
public SQLiteDatabase getDatabase(SQLiteDatabase mDatabase,Context mContext,String mName,CursorFactory mFactory){
if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) {
return mDatabase; // The database is already open for business
}
if (mName == null) {
mDatabase = SQLiteDatabase.create(null);
} else {
mDatabase = mContext.openOrCreateDatabase(mName, 0
, mFactory);
}
return mDatabase;
}
}
public class DatabaseHelper extends SQLiteOpenHelper { private final static String NAME="sharp.db"; //Factory:代表记录集游标工厂,是专门用来生成记录集游标,记录集游标是对查询结果进行迭代的,后面我们会继续介绍。 public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } public DatabaseHelper(Context context){ super(context, NAME, null, 1); } /** * 用户第一次使用软件时调用,实现数据库的操作crud */ @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub Log.i("save", "create"); db.execSQL("create table person(personid integer primary key autoincrement,name varcahr(20),age integer)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub db.execSQL("drop table if exists person"); onCreate(db); } /** * 根据版本号进行更新 * @param db * @param mNewVersion */ public void checkVersionCreate(SQLiteDatabase db,int mNewVersion){ int version = db.getVersion(); if (version != mNewVersion) { db.beginTransaction(); try { if (version == 0) { onCreate(db); }else{ onUpgrade(db, version,mNewVersion); } db.setVersion(mNewVersion); //设置为新的版本号 db.setTransactionSuccessful(); } finally{ db.endTransaction(); } } } /** * 数据库名不空,获得数据库实例 * @param mDatabase * @param mContext * @param mName * @param mFactory * @return */ public SQLiteDatabase getDatabase(SQLiteDatabase mDatabase,Context mContext,String mName,CursorFactory mFactory){ if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) { return mDatabase; // The database is already open for business } if (mName == null) { mDatabase = SQLiteDatabase.create(null); } else { mDatabase = mContext.openOrCreateDatabase(mName, 0, mFactory); } return mDatabase; } }
DbService:
Java代码
public
class
DbService {
private
DatabaseHelper databaseHelper;
private
Context context;
public
DbService(Context context){
this
.context=context;
databaseHelper=new
DatabaseHelper(
this
.context);
}
//保存
public
void
save(Person person){
SQLiteDatabase db = databaseHelper.getWritableDatabase();
db.execSQL("insert into person(name, age) values(?,?)"
,
new
Object[]{person.getName(), person.getAge()});
}
//更新
public
void
update(Person person){
SQLiteDatabase db = databaseHelper.getWritableDatabase();
db.execSQL("update person set name=?,age=? where personid=?"
,
new
Object[]{person.getName(), person.getAge(),
person.getId()});
}
//根据id查找
public
Person find(Integer id){
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select personid,name,age from person where personid=?"
,
new
String[]{String.valueOf(id)});
if
(cursor.moveToNext()){
//迭代记录集
Person person = new
Person();
//实例化person
person.setId(cursor.getInt(cursor.getColumnIndex("personid"
)));
person.setName(cursor.getString(1
));
person.setAge(cursor.getInt(2
));
//将查到的字段,放入person,
return
person;
}
cursor.close();//游标关闭
return
null
;
}
//删除
public
void
delete(Integer id){
SQLiteDatabase db=databaseHelper.getWritableDatabase();
db.execSQL("delete from person where id=?"
,
new
Object[]{id});
}
//
public
List<Person> getScrollData(
int
firstResult,
int
maxResult){
List<Person> persons = new
ArrayList<Person>();
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select personid,name,age from person limit ?,?"
,
new
String[]{String.valueOf(firstResult),String.valueOf(maxResult)});
//firstResult开始索引
while
(cursor.moveToNext()){
//maxResult每页获取的记录数
Person person = new
Person();
person.setId(cursor.getInt(cursor.getColumnIndex("personid"
)));
person.setName(cursor.getString(1
));
person.setAge(cursor.getInt(2
));
persons.add(person);
}
cursor.close();
return
persons;
}
//
public
long
getCount(){
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select count(*) from person"
,
null
);
//没有占位符参数的话,直接用null
cursor.moveToFirst();
long
count = cursor.getLong(
0
);
cursor.close();
return
count;
}
//
public
void
close(){
databaseHelper.close();
}
}
public class DbService { private DatabaseHelper databaseHelper; private Context context; public DbService(Context context){ this.context=context; databaseHelper=new DatabaseHelper(this.context); } //保存 public void save(Person person){ SQLiteDatabase db = databaseHelper.getWritableDatabase(); db.execSQL("insert into person(name, age) values(?,?)",new Object[]{person.getName(), person.getAge()}); } //更新 public void update(Person person){ SQLiteDatabase db = databaseHelper.getWritableDatabase(); db.execSQL("update person set name=?,age=? where personid=?", new Object[]{person.getName(), person.getAge(), person.getId()}); } //根据id查找 public Person find(Integer id){ SQLiteDatabase db = databaseHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select personid,name,age from person where personid=?", new String[]{String.valueOf(id)}); if(cursor.moveToNext()){ //迭代记录集 Person person = new Person();//实例化person person.setId(cursor.getInt(cursor.getColumnIndex("personid"))); person.setName(cursor.getString(1)); person.setAge(cursor.getInt(2)); //将查到的字段,放入person, return person; } cursor.close();//游标关闭 return null; } //删除 public void delete(Integer id){ SQLiteDatabase db=databaseHelper.getWritableDatabase(); db.execSQL("delete from person where id=?",new Object[]{id}); } // public List<Person> getScrollData(int firstResult, int maxResult){ List<Person> persons = new ArrayList<Person>(); SQLiteDatabase db = databaseHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select personid,name,age from person limit ?,?", new String[]{String.valueOf(firstResult),String.valueOf(maxResult)}); //firstResult开始索引 while(cursor.moveToNext()){ //maxResult每页获取的记录数 Person person = new Person(); person.setId(cursor.getInt(cursor.getColumnIndex("personid"))); person.setName(cursor.getString(1)); person.setAge(cursor.getInt(2)); persons.add(person); } cursor.close(); return persons; } // public long getCount(){ SQLiteDatabase db = databaseHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select count(*) from person", null); //没有占位符参数的话,直接用null cursor.moveToFirst(); long count = cursor.getLong(0); cursor.close(); return count; } // public void close(){ databaseHelper.close(); } }
Person:
Java代码
public
class
Person {
private
Integer id;
private
String name;
private
Integer age;
public
Person(){}
public
Person(String name,Integer age){
this
.name=name;
this
.age=age;
}
public
Integer getId() {
return
id;
}
public
void
setId(Integer id) {
this
.id = id;
}
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
public
Integer getAge() {
return
age;
}
public
void
setAge(Integer age) {
this
.age = age;
}
@Override
public
String toString() {
return
"Person [age="
+ age +
", id="
+ id +
", name="
+ name +
"]"
;
}
}
public class Person { private Integer id; private String name; private Integer age; public Person(){} public Person(String name,Integer age){ this.name=name; this.age=age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Person [age=" + age + ", id=" + id + ", name=" + name + "]"; } }
PersonServiceTest:
Java代码
public
class
PersonServiceTest
extends
AndroidTestCase{
public
void
testSave()
throws
Throwable{
//测试保存方法
DbService personService = new
DbService(
this
.getContext());
//传入上下文
Person person = new
Person(
"Tom"
,
21
);
personService.save(person);
}
}
public class PersonServiceTest extends AndroidTestCase{ public void testSave() throws Throwable{ //测试保存方法 DbService personService = new DbService(this.getContext()); //传入上下文 Person person = new Person("Tom", 21); personService.save(person); } }
一个activity:
Java代码
public
class
SqlLiteActivity
extends
Activity {
/** Called when the activity is first created. */
private
final
static
String TAG=
"PersonActivity"
;
private
ListView listView;
private
DbService personService;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView)findViewById(R.id.personList);
personService = new
DbService(
this
);
save(personService);
List<Person> persons = personService.getScrollData(0
,
3
);
//前十条数据
List<HashMap<String, String>> data = new
ArrayList<HashMap<String,String>>();
HashMap<String, String>title = new
HashMap<String, String>();
title.put("personid"
,
"编号"
);
title.put("name"
,
"姓名"
);
title.put("age"
,
"年龄"
);
data.add(title); //标题
for
(Person person : persons){
HashMap<String, String> map = new
HashMap<String, String>();
map.put("personid"
, String.valueOf(person.getId()));
map.put("name"
, person.getName());
map.put("age"
, String.valueOf(person.getAge()));
data.add(map); //显示各个数据
}
SimpleAdapter adapter = new
SimpleAdapter(SqlLiteActivity.
this
,
data, R.layout.personitem, new
String[]{
"personid"
,
"name"
,
"age"
},
new
int
[]{R.id.personid, R.id.name, R.id.age});
listView.setAdapter(adapter);
}
//
public
void
save(DbService service){
for
(
int
i=
0
;i<
5
;i++){
Person person=new
Person();
person.setName("d"
);
person.setAge(12
);
service.save(person);
}
}
}
public class SqlLiteActivity extends Activity { /** Called when the activity is first created. */ private final static String TAG="PersonActivity"; private ListView listView; private DbService personService; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView)findViewById(R.id.personList); personService = new DbService(this); save(personService); List<Person> persons = personService.getScrollData(0, 3);//前十条数据 List<HashMap<String, String>> data = new ArrayList<HashMap<String,String>>(); HashMap<String, String>title = new HashMap<String, String>(); title.put("personid","编号"); title.put("name", "姓名"); title.put("age", "年龄"); data.add(title); //标题 for(Person person : persons){ HashMap<String, String> map = new HashMap<String, String>(); map.put("personid", String.valueOf(person.getId())); map.put("name", person.getName()); map.put("age", String.valueOf(person.getAge())); data.add(map); //显示各个数据 } SimpleAdapter adapter = new SimpleAdapter(SqlLiteActivity.this, data, R.layout.personitem, new String[]{"personid", "name","age"}, new int[]{R.id.personid, R.id.name, R.id.age}); listView.setAdapter(adapter); } // public void save(DbService service){ for(int i=0;i<5;i++){ Person person=new Person(); person.setName("d"); person.setAge(12); service.save(person); } } }
main.xml<?xml version="1.0" encoding="utf-8"?>
Java代码
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/personList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></ListView>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/personList" android:layout_width="fill_parent" android:layout_height="wrap_content" ></ListView> </LinearLayout>
personitem.xml<?xml version="1.0" encoding="utf-8"?>
Java代码
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="60px"
android:layout_height="wrap_content"
android:id="@+id/personid"
/>
<TextView
android:layout_width="160px"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/personid"
android:layout_alignTop="@id/personid"
android:gravity="center_horizontal"
android:id="@+id/name"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/name"
android:layout_alignTop="@id/name"
android:id="@+id/age"
/>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="60px" android:layout_height="wrap_content" android:id="@+id/personid" /> <TextView android:layout_width="160px" android:layout_height="wrap_content" android:layout_toRightOf="@id/personid" android:layout_alignTop="@id/personid" android:gravity="center_horizontal" android:id="@+id/name" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/name" android:layout_alignTop="@id/name" android:id="@+id/age" /> </RelativeLayout>
相关文章推荐
- Android sqlite数据库操作通用框架AHibernate(二)源码-用于交流
- android sqlite数据库操作
- android数据库操作问题:could not allocate cursorwindow,errno:-12
- android SQLite数据库基本操作示例
- 黑马程序员----------Android 数据库 SQLite 相关操作
- Android-SQLite商业化数据库操作
- Android演示数据库操作
- Android通讯录数据库介绍与基本操作(增删改查)
- Android SQLite数据库基本操作和收藏功能的实现例子
- Android环境下使用JCFXBL API接口操作数据库
- Android演示操作数据库之二
- Android学习文档之数据库操作
- android 数据库操作
- Android 联系人数据库介绍以及对联系人的基本操作
- Android 使用ORMLite 操作数据库
- Android数据库事务操作
- android 数据库技术 | 文件系统,SDCARD访问,CONTENT PROVIDER,SQLITE ,CURSOR操作,CURSOR适配器,SQLITEHELPER,数据库设计模式
- Android数据库的操作
- Android-数据库操作
- Android Sqlite数据库执行插入查询更新删除的操作对比