Sqlite

步骤:

1、创建SQLiteOpenHelper的子类                // 见DBHelper

2、子类的构造方法中,指定数据库名菜,

3、SQLiteOpenHelper 内部两个方法需要实现 onCreate, onUpgrade


4、主方法中调用DBHelper                          // DBHelper hepler = new DBHelper(this);

5、通过GetReadblerDatabase()  getWritableDatabase()  获取数据库      database = helper.getWri...();


DBHelper中:

public class DBHelper extends SQLiteOpenHelper {

    public DBHelper(Context context) {

        // 参数1: Context上下文
        // 参数2: 数据库的名称
        // 参数3: 数据库查询时,对于记录的封装,通常为 null
        // 参数4: 给数据库定义一个版本,设置的版本会保存在数据库文件中,
        //       当代码中的版本升级了,系统会自动升级数据库。
        super(context, "appdata.db", null, 2);
    }

    /**
     * 作用:当第一个启动数据库,并且之前数据库没有创建
     * Android系统会自动的创建,调用 onCreate方法,
     * 来初始化数据库内部的表。
     * @param db
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.d("SQLite", "数据库创建");

        // SQLiteDatabase 可以执行 SQL 语句的操作,可以在
        // 这个方法中创建数据库表

        db.execSQL("create table users (id integer primary key autoincrement, name text not null, age integer )");
    }

    /**
     * 更新数据库
     * @param db SDLiteDatabase
     * @param oldVersion 数据库当前的旧版
     * @param newVersion 数据库需要升级的版本
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
       Log.d("SQLite", "数据库升级 " + oldVersion + " " + newVersion);
    }
}


Main中:

 /**
     * 打开/创建数据库的方法
     * @param view
     */
    public void btnOpenDb(View view) {
        if(database == null) {
            // 步骤
            // 1. 创建SQLiteOpenHelper的子类
            // 2. 子类中构造方法,指定数据库名称,数据库的版本
            // 3. SQLiteOpenHelper 内部两个方法需要实现 onCreate, onUpgrade

            DBHelper helper = new DBHelper(this);


            // 4. 通过 getReadableDatabase()
            //        getWritableDatabase() 获取数据库
            database = helper.getWritableDatabase();
        }
    }

    /**
     * 关闭数据库的方法
     * @param view
     */
    public void btnCloseDb(View view) {

        if (database != null) {

            database.close();
        }
    }
}



// 加载记录,显示,进行数据库的查询
        // 参数1: 表名
        // 参数2: 字符串数组 需要获取的列的内容,null 代表 *
        // 参数3: where语句的条件部分, 条件部分内部数值都是直接写成"?" 由参数4 进行设置
        // 参数4: 字符串数组,内容代表了 参数3中 每一个"?"要替换的值
        // 参数5: group by 信息,指定按照哪一列进行内容的分组
        // 参数6: having, 对应 group by 的设置
        // 参数7: order by 排序信息,asc 升序,desc 降序
        Cursor cursor = db.query(
                "records",
                null,
                "record_type = ?", // record_type = ? and money >= ?
                new String[]{"0"},  // 将  "0" 替换到 record_type = ? 形成实际内容
                null,  // group by
                null,  // having
                "time desc"     // order by -> "列名 排序方式"
        );

        // cursor 获取之后可以动态的设置到Adapter上面,更新结果

        if (cursor != null) {
            // 将Cursor设置个Adapter,自动刷新列表
            adapter.swapCursor(cursor);
        }

while  cursor.moveToNext()

int columnIndex = cursor.getColumnIndex("列名");

int id = cursor.getInt(columnIndex);

以上注意加判断




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值