SQLite是轻量级的、嵌入式的、关系型数据库,SQLite可移植性好,很容易使用,很小,高效而且可靠。在Android中保存大量数据需要使用到SQLite数据库,下面就介绍一下SQLite常用操作方法的简单实例。
首先创建数据库和表代码如下:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class SQLite extends SQLiteOpenHelper {
public SQLite(Context context) {
//必须通过super调用父类当中的构造函数
super(context, "user.db", null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String str = "create table person(id integer primary key autoincrement,name varchar(20),password varchar(20))";
db.execSQL(str);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
然后实现数据的增删改查方法,实现方式有两种:
(1)使用SQL语句实现,代码如下:
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.studyone.db.SQLite;
public class PersonDao {
private SQLite sqlite;
//在构造放法中创建一个SQLite对象
public PersonDao( Context context){
sqlite = new SQLite(context);
}
public void insert(String name,String password){
SQLiteDatabase db = sqlite.getWritableDatabase();
//只有调用了DatabaseHelper对象的getReadableDatabase()方法,或者是getWritableDatabase()方法之后,才会创建或打开一个数据库
db.execSQL("insert into person (name,password) values (?,?)",new Object[]{name,password});
db.close();
}
public String find(String name){
String result="";
SQLiteDatabase db = sqlite.getReadableDatabase();
Cursor curse = db.rawQuery("select name,password from person where name=?", new String[]{name});
while( curse.moveToNext() ){
result += curse.getString(curse.getColumnIndex("name"));
result += curse.getString(curse.getColumnIndex("password"));
}
curse.close();
db.close();
return result;
}
public void update(String name ,String password){
SQLiteDatabase db = sqlite.getWritableDatabase();
//execSQL函数用于执行SQL语句
db.execSQL("update person set password = ? where name=?",new String[]{password,name});
db.close();
}
public void delete(String name){
SQLiteDatabase db = sqlite.getWritableDatabase();
db.execSQL("delete from person where name=?",new String[]{name});
db.close();
}
}
(2)调用系统api实现,代码如下:
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.studyone.db.SQLite;
public class PersonDao {
private SQLite sqlite;
public PersonDao( Context context){
sqlite = new SQLite(context);
}
public void insert(String name,String password){
SQLiteDatabase db = sqlite.getWritableDatabase();
ContentValues values = new ContentValues();//生成ContentValues对象
values.put("name", name);
values.put("password", password);
db.insert("person", null, values);
db.close();
}
public String find(String name){
String result="";
SQLiteDatabase db = sqlite.getReadableDatabase();
Cursor curse = db.query("table", new String[]{"name","password"}, "name=?", new String[]{name}, null, null, null);
while( curse.moveToNext() ){
result += curse.getString(curse.getColumnIndex("name"));
result += curse.getString(curse.getColumnIndex("password"));
}
curse.close();
db.close();
return result;
}
public void update(String name ,String password){
SQLiteDatabase db = sqlite.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("password", password);
db.update("person", values, "name=?", new String[]{name});
db.close();
}
public void delete(String name){
SQLiteDatabase db = sqlite.getWritableDatabase();
db.delete("person", "name=?", new String[]{name});
db.close();
}
}
然后就可以调用实现的方法操作数据了
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void updateBtn(View v) throws Exception {
new PersonDao(this).update("554849416", "654321");
Toast.makeText(MainActivity.this,
"update ok", Toast.LENGTH_LONG)
.show();
}
public void findBtn(View v) throws Exception {
Toast.makeText(MainActivity.this,
new PersonDao(this).find("554849416"), Toast.LENGTH_LONG)
.show();
}
public void insertBtn(View v) throws Exception {
new PersonDao(this).insert("554849416", "123456");
Toast.makeText(MainActivity.this, "insert ok", Toast.LENGTH_LONG)
.show();
}
public void deleteBtn(View v) throws Exception {
new PersonDao(this).delete("554849416");
Toast.makeText(MainActivity.this, "delete ok", Toast.LENGTH_LONG)
.show();
}
}
布局文件代码
"http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
OK搞定。