Android数据库步骤

来源:互联网 发布:携程大数据分析笔试题 编辑:程序博客网 时间:2024/06/06 07:00

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);

       }

       return users;

    }

}

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

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

DatabaseUtility.add(user);//添加

DatabaseUtility.delete(id);//删除

DatabaseUtility.update(user);//修改

DatabaseUtility.query(userInfo);//查询

0 0
原创粉丝点击