Android数据库Sqlite-android学习之旅(九)

简介

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);
        }
    }
}
时间: 2024-12-20 01:29:26

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

Android数据库SQLite表内设置外键

Android数据库SQLite表内设置外键 介绍 Android默认的数据是SQLite,但SQLite3.6.19之前(在2.2版本中使用的是3.6.22,因此如果你的应用只兼容到2.2版本就可以放心使用外键功能)是不支持外键的,如果有两张表需要关联,用外键是最省事的,但不支持的话怎么办呢?这里就有一个解决办法,就是用事务将两张表关联起来,并且最后生成一张视图. 现有两张表 Employees Dept 视图 ViewEmps:显示雇员信息和他所在的部门 创建数据库 自定义一个辅助类继承SQ

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

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

学习Android数据库SQLite的笔记

使用SQLiteOpenHelper类操作数据库是官方提供的一个官方帮助类,操作数据库要使用到SQLiteDatabase,可以通过getReadableDatabase()或getWritableDatabase()获取,这两个方法都可以打开或创建一个数据库,不同的是当磁盘空间已满等情况造成的数据库不可写,getReadableDatabase()是可以成功打开数据库的,但只可以读取数据库,而使用getWritableDatabase()则会直接抛出异常. 首先必须创建一个继承SQLiteOp

Android 数据库 SQLite

首先关于SQLite的介绍百度上看看就大致了解的差不多了. Android 操作数据库的关键步骤就在于实现API SQLiteOpenHelper,通常这个库辅助类来创建或打开数据库. 废话不多说直接上代码解释吧: 1 public class PersonDBOpenHelper extends SQLiteOpenHelper { 2 //context 上下文 3 //第二个是名字,如果名字空 为内存数据库 数据库名字 4 //CursorFactory 游标工厂 5 //version

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

简单讲解如何使用WebView加载百度的网页 acticity代码 public class MainActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView

Android数据库SQLite

数据库 数据库增删改查 添加 insert into info (name,phone) values ('zhangsan','110') 删除 delete from info where name='zhangsan' 修改 update info set phone ='999' where name ='zhangsan' 查询 select * from info where name='zhangsan' Android下数据库增删改查 void - db.execSQL() 增删

Android数据库(sqlite)加密方案

最近因为一些项目的安全性需要将数据库加密,一开始想到的就是先将数据库通过AES加密,然后运行时再解密,另一种是将数据库里的内容加密. 很快这两种方案都是不理想的,第一种加密方式形同虚设,第二种,如果加密的字段是要查找数据就变得麻烦. 所以第三种方案就是在内存里解密,在网上查到SQLITE是支持加密的, 所以就根据网上的指导一步步地将SQLITE编译成支持加密的. 那下一步就是怎样做成SDK去方便使用?第一个念头就是将原生的数据库使用方式移植过来,但做起来比开始想像的难了点,但最终也在修修补补中完

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

SharedPrefenence采用的键值对的方式来进行存储,采用内部存储的方式. 实例 public class MainActivity extends Activity { private SharedPreferences sp; private CheckBox cb = null; public static final String KEY_SHOW_DIALOG = "show_dialog"; @Override protected void onCreate(Bun

gradle学习之旅(九) 依赖配置

包括本节的接下来三节中分别学习gradle依赖管理中是三个重要感念:依赖配置.依赖声明.仓库配置和使用 什么是配置 配置就是依赖的配置 插件可以引入配置来定义依赖的作用域(第四节的java插件),比如java插件通过compile配置添加编译产品源代码所需的依赖. 配置的API表示 配置可以直接在项目的根级别添加和访问,可以直接使用插件提供的配置,也可以声明自己的配置. 类似于taskContainer,每个项目也有一个ConfigurationContainer类的容器来管理相应的配置 配置在

转载-Android数据库高手秘籍(一)——SQLite命令

原文地址: http://blog.csdn.net/guolin_blog/article/details/38461239 Android数据库高手秘籍(一)——SQLite命令 分类: Android数据库高手秘籍2014-09-04 09:10 7310人阅读 评论(42) 收藏 举报 Android数据库SQLite高手秘籍LitePal 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/38461239 要想熟练地操作任