zoukankan      html  css  js  c++  java
  • Android开发之Sqlite的使用

    Android系统提供Sqlite小型关系数据库来存储数据。要使用该数据库首先要写一个类继承SQLiteOpenHelper类,重写该类的onCreate方法和onUpgrade方法。

    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    
    public class DBHelper extends SQLiteOpenHelper{
    //版本控制 public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { System.out.println("onCreate"); db.execSQL("create table user(id varchar(20) , name varchar(20) , phoneNumber varchar(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("onUpdate"); } }


    为了得到数据库调用getReadableDatabase()方法。如果数据库第一次被创建则调用DBHelper重写的onCreate方法。当系统发现版本发生变化的时候则会调用onUpgrade方法,在这里我们可以做一些表的结构的修改。

    //创建了一个DatabaseHelper对象,并生成数据库文件
    DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 3);
    //getReadableDatabase函数会调用helper的onCreate方法
    SQLiteDatabase database = helper.getReadableDatabase();

    调用insert方法,就可以将数据插入到数据库当中
    第一个参数:表名称
    第二个参数:SQl不允许一个空列,如果ContentValues是空的,那么这一列被明确的指明为NULL值
    第三个参数:ContentValues对象

    class BtnInsertListener implements OnClickListener{
        @Override
        public void onClick(View arg0) {
            //创建ContentValues对象
            ContentValues values = new ContentValues();
            values.put("id", 1);
            values.put("name", "cjx");
            values.put("phoneNumber", "159xxxxxxxx");
            DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 1);
            SQLiteDatabase database = helper.getWritableDatabase();
            database.insert("user", null, values);
            
        }
    }


    调用SQLiteDatabase对象的delete方法进行删除操作
    第一个参数String:表名
    第二个参数String:条件语句
    第三个参数String[]:条件值

    class BtnDeleteListener implements OnClickListener{
        @Override
        public void onClick(View arg0) {
            DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 3);
            SQLiteDatabase database = helper.getWritableDatabase();
            database.delete("user", "id=?", new String[]{ "1" });
        }
    }


    调用update方法
    第一个参数String:表名
    第二个参数ContentValues:ContentValues对象
    第三个参数String:where字句,相当于sql语句where后面的语句,?号是占位符
    第四个参数String[]:占位符的值

    class BtnUpdateListener implements OnClickListener{
        @Override
        public void onClick(View arg0) {
            DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 3);
            SQLiteDatabase database = helper.getWritableDatabase();    
            ContentValues values = new ContentValues();
            values.put("name", "chen");
            database.update("user", values, "id=?", new String[]{ "1" });
        }
    }

    调用SQLiteDatabase对象的query方法进行查询,返回一个Cursor对象:由数据库查询返回的结果集对象
    第一个参数String:表名
    第二个参数String[]:要查询的列名
    第四个参数String[]:查询条件的参数
    第五个参数String:对查询的结果进行分组
    第六个参数String:对分组的结果进行限制
    第七个参数String:对查询的结果进行排序

    class BtnSelectListener implements OnClickListener{
        @Override
        public void onClick(View arg0) {
            DBHelper helper = new DBHelper(MainActivity.this, "user_db", null, 3);
            SQLiteDatabase database = helper.getWritableDatabase();    
            Cursor cursor = database.query("user"
                    , new String[]{ "id" , "name" , "phoneNumber" }
                    ,"id=?"
                    ,new String[]{ "1" }
                    , null
                    , null
                    , null);
            while( cursor.moveToNext() ){
                String id=cursor.getString(cursor.getColumnIndex("id"));
                System.out.println(id);
                String name=cursor.getString(cursor.getColumnIndex("name"));
                System.out.println(name);
            }   
        }
    }

    另外可以使用adb进入android模拟器查看android系统中刚被创建的sqlite数据库,同时也可以对该数据库进行管理。

    进入android操作系统

    # adb shell


     进入自己新建的项目

    # cd data/data/com.example.sqlite


    进入user_db数据库

    # sqlite3 user_db


    提示符由 # 变成 sqlite> 接下来可以执行一些sql命令,对数据库进行管理了!

    sqlite>.schema
    sqlite>select * from user;
  • 相关阅读:
    Core 1.0中的管道-中间件模式
    java平台的常用资源
    C#设备处理类操作
    C#语音录制
    Web中的性能优化
    nginx+lua+redis构建高并发应用(转)
    HttpLuaModule——翻译(Nginx API for Lua) (转)
    Nginx各版本的区别
    Linux(Centos)中tcpdump参数用法详解(转)
    我见过最好的vsftpd配置教程(转)
  • 原文地址:https://www.cnblogs.com/chenjianxiang/p/3677293.html
Copyright © 2011-2022 走看看