Android数据库的操作

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);//查询


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值