美文网首页
android SQLite数据库 笔记

android SQLite数据库 笔记

作者: geaosu | 来源:发表于2018-01-22 14:10 被阅读0次
    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数据库 笔记

          本文链接:https://www.haomeiwen.com/subject/xwplaxtx.html