关闭

《拼图游戏》技术总结“三”SQLite

239人阅读 评论(0) 收藏 举报
分类:


在排行榜中的ListView显示的数据源都是从数据库中获得的

所以在这里讲解一下数据库的使用:


/**
 *  这个类用来创建数据库
 */
public class RankOpenHelper extends SQLiteOpenHelper {//建表语句
    public static final String CREATE_RankList = "create table Rank ("
            + "id integer primary key autoincrement, "
            + "player_name text, "//玩家姓名
            + "game_level text, "//游戏等级
            + "run_num text, "//使用步骤
            + "game_date text)";//游戏时间
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        //创建排行表
        sqLiteDatabase.execSQL(CREATE_RankList);

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }

    public RankOpenHelper(Context context, String name) {
        // 上下文 ,表名
        super(context, name,null,1);
    }
}
/**
 * 这个类用来操作数据库
 */
public class RankDB {
    //数据库名字
    public static final String DB_NAME = "rank";
    private static RankDB _RankDB;
    private SQLiteDatabase db;  
 
//定义一个用private 修饰的构造方法,防止对此数据库进行重复的创建//这里好像还用到了一种设计模式
private RankDB(Context pContext) { //初始化一个 RankOpenHelper RankOpenHelper dbHelper = new RankOpenHelper(pContext, DB_NAME); //创建或打开一个数据库 db = dbHelper.getWritableDatabase(); } //提供一个方法获得这个类 public static RankDB get_RankDB(Context pContext) { if (_RankDB == null) { _RankDB = new RankDB(pContext); } return _RankDB; } //存储排行榜数据 public void saveRank(RankPlayer _RankPlayer) { //传进来一个 排行榜的值 ContentValues values = new ContentValues(); values.put("game_level", _RankPlayer.Level); values.put("player_name", _RankPlayer.name); values.put("run_num", _RankPlayer.runNum); db.insert("Rank", null, values);//插入到数据库中去 } //从数据库中获得数据 public List<RankPlayer> getData() { List<RankPlayer> _RankPlayer = new ArrayList<>(); Cursor cursor = db.query("Rank", null, null, null, null, null, null); if (cursor.moveToFirst()) { do { RankPlayer zy = new RankPlayer(); zy.name = cursor.getString(cursor.getColumnIndex("player_name")); zy.runNum = cursor.getString(cursor.getColumnIndex("run_num")); zy.Level = cursor.getString(cursor.getColumnIndex("game_level")); _RankPlayer.add(zy); } while (cursor.moveToNext()); } cursor.close(); return _RankPlayer; }}
//还有删除,更新数据的操作以后再讲。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8110次
    • 积分:331
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条