初学Android之SQLite

来源:互联网 发布:sql 出生日期转换年龄 编辑:程序博客网 时间:2024/06/08 06:43

AndroidSQLite: 插删改查方法总结

Android中增删改查相对比较容易,开发团队给我们封装的已经很好了,不需要自己写sql语句。


首先写一个继承SQLiteOpenHelper的类 ,我就叫MyOpenHelper吧。
我们看SQLiteOpenHelper的注释是这样写的:
A helper class to manage database creation and version management. 他可以帮助我们创建和管理数据库。
这里面有好多方法,在这里只需要用这几个方法:

//context:上下文//name:数据库名字//factory:游标工厂//version:版本号public MyOpenHelper(Context context, String name, CursorFactory factory,int version) {    super(context, name, factory, version);}//创建public void onCreate(SQLiteDatabase db) {    //在这里创建一个表    db.execSQL("create table user(_id integer primary key autoincrement, name char(10), age integer(10));");    }//更新(android数据库可以更新,用新版本替换旧版本时使用)public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}

接下来写一个测试类,继承AndroidTestCase
注意测试类写好后还需要在AndroidManifest.xml中进行一下配置

<instrumentation   android:name="android.test.InstrumentationTestRunner"    android:targetPackage="测试类包"    ></instrumentation><uses-library         android:name="android.test.runner"        />

测试类:

private MyOpenHelper moh;//如果在这里直接new了会报空指针异常,因为测试框架初始化后直接走了测试方法,private SQLiteDatabase db;//测试框架初始化完毕之后,在测试方法之前,此方法调用@Overrideprotected void setUp() throws Exception {    super.setUp();    moh = new MyOpenHelper(getContext(), "data.db", null, 1);    db = moh.getWritableDatabase();}//添加,直接调用insert方法public void insert(){    ContentValues values = new ContentValues();    values.put("name", "csdn");    values.put("age", 18);    //此方法有三个参数:    //table: 指定表名    //nullColumnHack:指定插入列,可选,指定null时,全部插入    //values 键值对,指定每行插入的数据是什么    db.insert("user", null, values);}//删除public void delete(){    //第一个参数指定对哪个表进行操作    //第二个参数指定根据表中哪个列删除  如 根据id    //第三个参数指定具体删除的元素对应列的值  如 id=1 此位置为数组。    db.delete("user", "_id=?", new String[]{"1"});}//修改public void update(){    ContentValues values = new ContentValues();    values.put("age", "18");    //对value值进行修改    int i = db.update("user", values, "name=?", new String[]{"csdn"});    System.out.println(i);}//查询这个方法参数一大堆//table:表名    //columns:列名,指定查询哪些列字符串数组,指定为null时,查询所有//selection   字符串  查询条件   //selectionArgs  填充占位符//groupBy      分组//having       分组条件//orderBy      排序//limit        分页public void select(){    Cursor cursor = db.query("user", null, null, null, null, null, null, null);    //遍历    while(cursor.moveToNext()){        String name= cursor.getString(cursor.getColumnIndex("name"));        int age = cursor.getInt(cursor.getColumnIndex("age"));        System.out.println("name:"+name+"  ,age:"+age);    }}
0 0
原创粉丝点击