Android SQLite数据库使用示例

来源:互联网 发布:如何理财 知乎 编辑:程序博客网 时间:2024/05/20 03:08

支持的 数据类型有 null,integer,float,double,long,text,char ,varchar,date,time,timestamp(时间戳)等等

char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的

参考点击打开链接


继承 SQLiteOpenHelper

//如果数据库文件不存在,只有onCreate()被调用(该方法在创建数据库时被调用一次)。// 如果数据库文件存在,且创建SQLiteOpenHelper 对象指定版本高于已有版本时,// 会调用onUpgrade()方法升级数据库,并更新版本号。public class DataBaseHelper extends SQLiteOpenHelper {    private Context context;    private String name;//数据库名字    private static final int VERSION = 1;    public DataBaseHelper(Context context, String name) {        this(context, name, VERSION);    }    public DataBaseHelper(Context context, String name,                          int version) {        this(context, name, null, version);    }    public DataBaseHelper(Context context, String name,                          SQLiteDatabase.CursorFactory factory, int version) {        super(context, name, factory, version);    }    //SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据    @Override    public void onCreate(SQLiteDatabase db) {        //execSQL用于执行SQL语句        //if not exists,如果不存在就创建        //id integer primary key autoincrement,id 主键自增长        //user(id integer primary key autoincrement,name varchar(20)),表名字段类型        db.execSQL("create table if not exists " +                "user(id integer primary key autoincrement,name varchar(20),age integer)");    }    //三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}



//sqlite 使用    private void sqlite() {        DataBaseHelper dataBaseHelper = new DataBaseHelper(this, "text1");        SQLiteDatabase db = dataBaseHelper.getWritableDatabase();        doInsert(db);        doDelete(db);        doUpdate(db);        doQuery(db);    }    private void doInsert(SQLiteDatabase db) {        //插入 数据,null代表id自增长        db.execSQL("insert into person values(null, ?)",                new Object[]{"小明"});        //另一种 方式        ContentValues values = new ContentValues();        values.put("name", "小明");        //第一个参数是表名,        // 第二个参数通常都用不到,直接传null,        // 第三个参数则是一个封装了待存储数据的        long id = db.insert("person", null, values);    }    private void doDelete(SQLiteDatabase db) {        //删除数据        db.execSQL("delete from person where age=?",                new Object[]{""});        //另一种 方式        db.delete("person", "age=?", new String[]{null});    }    private void doUpdate(SQLiteDatabase db) {        //修改数据        db.execSQL("update person set name=小米 where id=2");        //另一种 方式        ContentValues contentValues = new ContentValues();        contentValues.put("name", "小米");        db.update("person", contentValues,                "id=?", new String[]{"2"});    }    private void doQuery(SQLiteDatabase db) {        //android 中通过query获取cursor进行查询        //获取查询游标        Cursor cursor = db.query("person",                new String[]{"id", "sname", "sage", "ssex"}, "id=?",                new String[]{"1"}, null, null, null);        while (cursor.moveToNext()) {            String name = cursor.getString(cursor.getColumnIndex("name"));            String age = cursor.getString(cursor.getColumnIndex("age"));        }        //关闭 查询游标        cursor.close();    }


0 0
原创粉丝点击