android SQLite数据库 笔记

android SQLite数据库 笔记
android原生api开发
    步骤:
        1. 帮助类;
        2. 操作数据库;
        
    代码: 
        1. 创建数据库帮助类 继承系统的SQLiteOpenHelper
            /**
             * 数据库帮助类
             */
            public class MyDBopenHelper extends SQLiteOpenHelper {
                /**
                 * 构造方法
                 * @param context       上下文
                 * @param name          数据库的名字
                 * @param factory       游标工厂,null
                 * @param version       数据库的版本号
                 */
                public MyDBopenHelper(Context context) {
                    super(context, "geaosu.db",null,1);
                }
            
                /**
                 * 第一次创建数据库的时候调用, 适合初始化数据库的表
                 */
                @Override
                public void onCreate(SQLiteDatabase db) {
                    System.out.println("数据库创建了");
                    db.execSQL("create table gg( _id integer primary key autoincrement,name varchar(20),num varchar(20))");
                }

                /**
                 * 数据库升级的时候调用
                 */
                @Override
                public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                }
            }


        2. 操作数据库
            * 增
                    /**
                     * 添加数据
                     */
                    public void insert(){
                        //1.在内存中创建数据库帮助类的对象
                        MyDBopenHelper helper = new MyDBopenHelper(this);
                        //2.生成数据库文件
                        SQLiteDatabase db = helper.getWritableDatabase();
                        //db.execSQL("insert into gg ('name','num') values (?,?)",new Object[]{"xiaoshenyang","001"});
                        /*
                         * table            :表名
                         * nullColumnHack   :null
                         * ContentValues    :用HashMap存储数据
                         */
                        ContentValues values = new ContentValues();
                        values.put("name", "songxiaobao");
                        values.put("num", "12");
                        long id = db.insert("gg", null, values);
                        if (id == -1) {
                            Toast.makeText(this, "操作表失败了", 0).show();
                        }else {
                            Toast.makeText(this, "操作表成功:"+id, 0).show();
                        }
                        db.close();     //释放资源
                    }
            * 删
                    /**
                     * 删除数据
                     */
                    public void delete(View v){
                        //1.在内存中创建数据库帮助类的对象
                        MyDBopenHelper helper = new MyDBopenHelper(this);
                        //2.生成数据库文件
                        SQLiteDatabase db = helper.getWritableDatabase();
                        //db.execSQL("delete from gg");
                        int id = db.delete("gg", null, null);
                        if (id == 0) {
                            Toast.makeText(this, "操作表失败了", 0).show();
                        }else {
                            Toast.makeText(this, "操作表成功:"+id, 0).show();
                        }
                        db.close();     //释放资源
                    }
            * 改
                    /**
                     * 修改数据
                     */
                    public void update(View c){
                        //1.在内存中创建数据库帮助类的对象
                        MyDBopenHelper helper = new MyDBopenHelper(this);
                        //2.生成数据库文件
                        SQLiteDatabase db = helper.getWritableDatabase();
                        //db.execSQL("update gg set name=?",new String[]{"yadan"});
                        /*
                         * table        :表名、
                         * values       :要修改的列
                         * whereClause  :修改条件
                         * whereArgs    :修改条件里的占位符
                         */
                        ContentValues values = new ContentValues();
                        values.put("name", "cuihua");
                        int id = db.update("gg", values, null, null);
                        if (id == 0) {
                            Toast.makeText(this, "操作表失败了", 0).show();
                        }else {
                            Toast.makeText(this, "操作表成功:"+id, 0).show();
                        }
                        db.close();     //释放资源
                    }
            * 查
                    /**
                     * 查找数据
                     */
                    public void query(View view){
                    //1.在内存中创建数据库帮助类的对象
                    MyDBopenHelper helper = new MyDBopenHelper(this);
                    //2.生成数据库文件
                    SQLiteDatabase db = helper.getReadableDatabase();
                        
                    /*
                     * distinct         :去重
                     * table            :表名
                     * columns          :要查询的列
                     * selection        :查询条件
                     * selectionArgs    :查询条件的占位符
                     * groupBy          :分组
                     * having           :分组后的条件限定
                     * orderBy          :排序
                     * limit            :分页
                     */
                    Cursor cursor = db.query("gg", new String[]{"num","name"}, null, null, null, null, null, null);
                    //Cursor cursor = db.rawQuery("select * from gg", null, null);
                    while (cursor.moveToNext()) {
                        String name = cursor.getString(1);
                        String num = cursor.getString(0);
                        System.out.println("name:"+name+" num:"+num);
                    }
                    cursor.close();     //关闭cursor
                    db.close();         //释放资源
                }





java原生api开发
    步骤:
        1. 帮助类;
        2. 操作数据库

    代码:
        1. 帮助类;
            /**
             * 数据库帮助类
             */
            public class MyDBopenHelper extends SQLiteOpenHelper {
                /**
                 * 构造方法
                 * @param context   上下文
                 * @param name      数据库的名字
                 * @param factory   游标工厂,null
                 * @param version   数据库的版本号 (只能生不能降级, >=1的正整数)
                 */
                public MyDBopenHelper(Context context) {
                    super(context, "geaosu.db", null, 1);
                }
            
                /**
                 * 第一次创建数据库的时候调用; 适合初始化数据库的表, version 增长的时候调用
                 */
                @Override
                public void onCreate(SQLiteDatabase db) {
                    Log.e("geaosu", "数据库创建了");
                    db.execSQL("create table gg( _id integer primary key autoincrement ,name varchar(20),num varchar(20))");
                }
            
                /**
                 * 升级数据库的时候调用
                 */
                @Override
                public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                    Log.e("geaosu", "数据库升级了");
                }
            }




        2. 操作数据库                
            /**
             * 给数据库添加数据
             */
            public void insert(){
                //1.在内存中创建数据库帮助类的对象
                MyDBopenHelper helper = new MyDBopenHelper(this);
                //2.生成数据库文件
                SQLiteDatabase db = helper.getWritableDatabase();
                db.execSQL("insert into gg ('name','num') values (?,?)",new Object[]{"xiaoshenyang","001"});
                db.close();//释放资源
            }
            
            /**
             * 删除
             */
            public void delete(){
                //1.在内存中创建数据库帮助类的对象
                MyDBopenHelper helper = new MyDBopenHelper(this);
                //2.生成数据库文件
                SQLiteDatabase db = helper.getWritableDatabase();
                db.execSQL("delete from gg");
                db.close();     //释放资源
            }

            /**
             * 修改
             */
            public void update(){
                //1.在内存中创建数据库帮助类的对象
                MyDBopenHelper helper = new MyDBopenHelper(this);
                //2.生成数据库文件
                SQLiteDatabase db = helper.getWritableDatabase();
                db.execSQL("update gg set name=?",new String[]{"yadan"});
                db.close();     //释放资源
            }

            /**
             * 查找
             */
            public void query(){
                //1.在内存中创建数据库帮助类的对象
                MyDBopenHelper helper = new MyDBopenHelper(this);
                //2.生成数据库文件
                SQLiteDatabase db = helper.getWritableDatabase();
                    
                /*
                 * distinct         :去重
                 * table            :表名
                 * columns          :要查询的列
                 * selection        :查询条件
                 * selectionArgs    :查询条件的占位符
                 * groupBy          :分组
                 * having           :分组后的条件限定
                 * orderBy          :排序
                 * limit            :分页
                 */
                Cursor cursor = db.query("gg", new String[]{"name", "num"}, null, null, null, null, null, null);
                while (cursor.moveToNext()) {
                    String name = cursor.getString(0);
                    String num = cursor.getString(1);
                    System.out.println("name:"+name+" num:"+num);
                }
                cursor.close();     //关闭cursor
                db.close();         //释放资源
            }

你可能感兴趣的:(android SQLite数据库 笔记)