您的位置:首页 > 移动开发 > Android开发

Android数据库的操作

2014-05-09 15:57 211 查看
1、新建类DatabaseHelper继承SQLiteOpenHelper

/**
* SQLiteOpenHelper是一个辅助类,用来管理数据库的创建和版本他,它提供两个方面的功能
* 第一,getReadableDatabase()、getWritableDatabase
* ()可以获得SQLiteDatabase对象,通过该对象可以对数据库进行操作
* 第二,提供了onCreate()、onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作
*/
public class DatabaseHelper extends SQLiteOpenHelper {
private final static String DATABASE_NAME = "todo.db"; // 数据库名
private final static int DATABASE_VERSION = 1; // 数据库的版本号

public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
// 数据库建表,可以建多张表,在这里就建两张表
String sql1 = "create table user(userid varchr(20),username varchr(20))";
db.execSQL(sql1);
String sql2 = "create table movies(id varchr(20),name varchr(20))";
db.execSQL(sql2);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}


2、可以建一个数据库管理的类,用于管理数据库的增删该查的操作

public class DatabaseUtility {
public static DatabaseHelper helper; // 创建一个DatabaseHelper对象

public static void init(Context context) {// 可以在刚进入程序是调用DatabaseUtility.init()去创建数据库
helper = new DatabaseHelper(context);
}

// 增加数据的方法
public static void add(User user) { // 这里传入自定义类或一些数据
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("userid", user.getId());
values.put("username", user.getName()); // 要添加的数据
db.insert("user", null, values); // 执行添加
}

// 删除数据的方法
public static void delete(String id) { // 传入删除的条件,如果是多个,可以传个数组
SQLiteDatabase db = helper.getWritableDatabase();
String whereClause = "userid=?"; // 删除的条件
String[] whereArgs = { id }; // 删除的条件参数,参数应该为数组的形式
db.delete("movies", whereClause, whereArgs);// 执行删除
}

public static void update(User user) { // 这里传入要修改的数据和修改的内容
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("username", user.getName()); // 要修改的内容
String[] whereArgs = { user.getUserId() }; // 修改的条件参数,参数应该为数组的形式
db.update("user", values, "userid=?", whereArgs);
}

// 查询数据的方法
public static List<User> query(String[] userInfo) { //传入查询条件,如果是多个,可以传个数组
List<User> users = new ArrayList<User>();
User user;
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.query("user", null, "userid=? and username=?",userInfo, null, null, null);
while (cursor.moveToNext()) {
user = new User();
user.setUserId(cursor.getString(cursor.getColumnIndex("userid")));
user.setName(cursor.getString(cursor.getColumnIndex("username")));
movies.add(movie);
}
returnusers;
}
}


3、用数据库时应先调用DatabaseUtility.init()去创建数据库,只用创建一次

需要对数据库进行操作时直接调用方法:

DatabaseUtility.add(user);//添加
DatabaseUtility.delete(id);//删除
DatabaseUtility.update(user);//修改
DatabaseUtility.query(userInfo);//查询
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android应用 数据库