在Android中用的是Sqlite数据库,Sqlite数据库数据相对简单容易。一般用在移动终端。下面我们来创建一个contacts数据库,并对它执行增删改查的基本操作。Sqlite数据库的创建要利用SQLiteOpenHelper这个类。如下:
public class ContactSqliteHelper extends SQLiteOpenHelper {
/**
* 数据库的名称 数据库查询的结果集 数据库的版本
* @param context
*/
public ContactSqliteHelper(Context context) {
super(context, "contacts.db", null, 1);
}
/**
* 数据库第一次被创建使用的方法
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table contacts (id integer primary key autoincrement,name varchar(20),number varchar(20))");
}
/**
* 数据库的更新方法
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
下面创建一个数据库的工具类,实现增删改查的四个方法:
public class DatabaseUtils {
private ContactSqliteHelper helper = null;
public DatabaseUtils(ContactSqliteHelper helper){
this.helper =helper;
}
/**
* 增加操作
* @param name
* @param number
*/
public void add(String name,String number){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("insert into contacts(name,number) values(?,?)",new Object[]{name,number});
db.close();
}
/**
* 查找操作
* @param name
* @return
*/
public boolean find(String name){
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from contacts where name=?", new String[]{name});
boolean result = cursor.moveToNext();
db.close();
return result;
}
/**
* 删除操作
* @param name
*/
public void delete(String name){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("delete from contacts where name=?",new Object[]{name});
db.close();
}
/**
* 更新操作
* @param name
* @param newnumber
*/
public void update(String name,String newnumber){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("update contacts set number=?where name=?",new Object[]{newnumber,name});
db.close();
}
}
在MainActivity中有四个按钮,分别实现点击事件。代码如下:
public class MainActivity extends Activity {
ContactSqliteHelper helper = null;
DatabaseUtils utils;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = new ContactSqliteHelper(this);
// 数据库被创建
helper.getWritableDatabase();
utils = new DatabaseUtils(helper);
}
/**
* 增加操作
*
* @param view
*/
public void insert(View view) {
utils.add("小红", "10086");
utils.add("小明", "12345");
utils.add("小亮", "21147");
}
/**
* 删除操作
*
* @param view
*/
public void delete(View view) {
utils.delete("小红");
}
/**
* 查询操作
*
* @param view
*/
public void search(View view) {
boolean number = utils.find("小亮");
}
/**
* 更新操作
*
* @param view
*/
public void update(View view) {
utils.update("小明", "44944");
}
}
布局文件如图:
利用linux终端来看下结果:
注:com.example.db为这个apk的包名,有时在