简介

sqilte是一个轻量级的数据库,满足数据库的基本操作,由于移动端的内存有限,所以sqilte刚好能满足移动端开发的基本要求。

废话不多说,上代码

1.首先介绍一下,sqlite的管理类SQLiteOpenHelper。这个类用来管理数据库的创建和版本更新,需要继承它的方法。

代码如下:

public class Db extends SQLiteOpenHelper {

    public Db(Context context, String name, CursorFactory factory, int version) {
        super(context, "db", null, 1);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("CREATE TABLE user("+"name TEXT DEFAULT \"\""+"sex TEXT DEFAULT \"\")");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}

其中onCreate当数据库创建时候回调,onUpgrade方法是在版本号增大时候,自动回调,所以可以吧数据库要更新的操作写在里面。

数据库的插入操作

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Db db = new Db(this);
        //获取数据库的方式有两种,这是获取可读写,还有一种获取可读的数据库。db.getReadableDatabase()方法获得。
        SQLiteDatabase dbWriter = db.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("name", "shangsan");
        cv.put("sex", "male");
        //第一参数表示表明,第二个表示空列,第三个表示要填写的数据,用ContentValues 封装。
        //dbWriter.insert(table, nullColumnHack, values);
        dbWriter.insert("user", null,cv);
        db.close();
    }
}

查询操作

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Db db = new Db(this);
//      SQLiteDatabase dbWriter = db.getWritableDatabase();
//      ContentValues cv = new ContentValues();
//      cv.put("name", "shangsan");
//      cv.put("sex", "male");
//      //dbWriter.insert(table, nullColumnHack, values);
//
        SQLiteDatabase dbRaed = db.getReadableDatabase();
        //Cursor c = dbRaed.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
        Cursor c = dbRaed.query("user", null, "name=?", new String[]{"zhangsan"}, null, null, null);
        while (c.moveToNext()) {
            String name = c.getString(c.getColumnIndex("name"));
            String sex = c.getString(c.getColumnIndex("sex"));
            System.out.println(name+"  "+sex);
        }
    }
}

Android数据库Sqlite-android学习之旅(九)的更多相关文章

  1. android数据库SQLite的设计模式

    Dao设计模式可能是使用最多的数据库的设计模式其基本思路是将数据库操作的代码 与设计代码分离以便于维护和升级.具体的实现方法是使用包,然后在设计代码中调 用数据库的操作代码,dao设计模式需要创建5个 ...

  2. Android自制浏览器WebView-android学习之旅(64)

    简单讲解如何使用WebView加载百度的网页 acticity代码 public class MainActivity extends Activity { private WebView webVi ...

  3. Android万能适配器Adapter-android学习之旅(74)

    万能适配器的代码的github地址是https://github.com/fengsehng/CommonAdapter 万能适配器的代码的github地址是https://github.com/fe ...

  4. Android数据库(sqlite)加密方案

    最近因为一些项目的安全性需要将数据库加密,一开始想到的就是先将数据库通过AES加密,然后运行时再解密,另一种是将数据库里的内容加密. 很快这两种方案都是不理想的,第一种加密方式形同虚设,第二种,如果加 ...

  5. Android 数据库SQLite 写入SD卡

    如果手机没有root,数据库文件是无法查看到的,不方便调试. 最好的办法是把数据库写进SD卡. 修改的地方有两处: 1.在你的helper类中把数据库文件名称 DATABASE_NAME 由原来的一个 ...

  6. Android studio使用git-android学习之旅(79)

    首先我参考了hello_my_show和梦痕_sky的博客,表示感谢 android studio对于git的支持是很好的,这节课我们拉讲解怎么使用git可视化工具来clone project和提交修 ...

  7. Android为什么使用Binder-android学习之旅(101)

    基础知识 Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中.一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是非共享的,内核空间是共享的,如下图: ...

  8. android数据库sqlite增加删改查

    http://hi-beijing.iteye.com/blog/1322040 http://www.cnblogs.com/wenjiang/archive/2013/05/28/3100860. ...

  9. Android首选项SharedPreference-android学习之旅(六)

    SharedPrefenence采用的键值对的方式来进行存储,采用内部存储的方式. 实例 public class MainActivity extends Activity { private Sh ...

  10. android 读取SQLite android could not open the database in read/write mode错误

    由于AndroidManifest.xml文件中uses-permission没有设置权限问题 <uses-permission android:name="android.permi ...

随机推荐

  1. NOIP 2014

    Prob.1 生活大爆炸版 石头剪刀布 模拟.代码: #include<cstdio> #include<cstring> #include<iostream> u ...

  2. Codeforces Round#433 简要题解

    来自FallDream的博客,未经允许,请勿转载,谢谢. 我的号自从几个月前姿势水平过低疯狂掉分之后就没动过了  突然想上点分  就打了一场Div1  没想到打到了rank5  一发上橙了,可还行. ...

  3. [UOJ UNR#2 UOJ拯救计划]

    来自FallDream的博客,未经允许,请勿转载,谢谢. 传送门 感觉这题有点神... 模数是6比较奇怪,考虑计算答案的式子. Ans=$\sum_{i=1}^{k} P(k,i)*ans(i)$ a ...

  4. hdu 4123 树的最长路+RMQ

    Bob’s Race Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. 音频自动增益 与 静音检测 算法 附完整C代码

    前面分享过一个算法<音频增益响度分析 ReplayGain 附完整C代码示例> 主要用于评估一定长度音频的音量强度, 而分析之后,很多类似的需求,肯定是做音频增益,提高音量诸如此类做法. ...

  6. 使用WebStorm进行javascript调试

    曾经的选择是使用火狐浏览器的Firebug插件,具体的用法到时候在细说,这篇文章登场的是开发静态网页及javascript的利器--webstorm. 一.相关软件安装和配置 安装WebStorm  ...

  7. JavaScript和DOM

    body { margin: 0 } .left { float: left } .right { float: right } .pg-head { height: 48px; background ...

  8. Delphi 日期时间函数

    DateUtils.IncYear();DateUtils.IncMonth();DateUtils.IncWeek();DateUtils.IncDay();DateUtils.IncHour(); ...

  9. c++中双冒号的作用

    双冒号(::)用法 参考链接:https://segmentfault.com/a/1190000000345680 1.表示“域操作符”例:声明了一个类A,类A里声明了一个成员函数void f(), ...

  10. Java内存模型之重排序

    参考链接:https://blog.csdn.net/huzhigenlaohu/article/details/51595676