Android--SQLite应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android--SQLite应用相关的知识,希望对你有一定的参考价值。

下载地址:http://www.sqlite.org/download.html

教程地址:http://www.runoob.com/sqlite/sqlite-tutorial.html

1、在Windows安装SQLite,进行测试。

参考博客:Windows 上如何安装Sqlite

将sqlite3.def、sqlite3.dll与sqlite3.exe复制到D:\\sqlite

在CMD命令行中创建数据库,如图方法:

技术分享

参考博客:SQLite3创建数据库的方法

 

SQLite语句测试,如下图:

技术分享

 

SQLite分页查询方法

参考博客:Android SQLite分页查询的三种方法

order by 与 limit同用注意事项

参考博客:

同时使用order by和limit有时候返回错误的结果集的奇怪问题
http://bbs.chinaunix.net/thread-1276235-1-1.html
(出处: http://bbs.chinaunix.net/)

 

2、android 使用API

参考博客: Android中SQLite应用详解

注:必须添加SD卡创建与删除文件权限

    <!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

    <!-- 向SD卡写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

 

初始化数据库表代码:

    /**
     * 初始化数据库表
     */
    private void InitTable(){
        db = openOrCreateDatabase("db.db", Context.MODE_PRIVATE, null);
        Cursor cursor = db.rawQuery(SqlStatement.getInitStr(),null);
        boolean result = false;
        if(cursor.moveToNext()){
            int count = cursor.getInt(0);
            if(count>0){
                result = true;
            }
        }
        cursor.close();
        if(!result){//如果错误,创建表
            db.execSQL(SqlStatement.getCreateStr());
        }
    }

 java字符串格式化

参考博客: JAVA字符串格式化-String.format()的使用

 String.xml中的字符串不能含有 

SQLite查询数据方法,如下:

        String limit = String.valueOf(this.mPageSize);
        String sql =SqlStatement.getSearchStr(goods,limit,offset);
        Cursor cursor = db.rawQuery(sql,null);
        this.mDataList = new ArrayList<DataItem>();//初始化列表
        while(cursor.moveToNext()){
            int id = cursor.getInt(cursor.getColumnIndex("ID"));
            String itemName = cursor.getString(cursor.getColumnIndex("Goods"));
            String price = cursor.getString(cursor.getColumnIndex("Price"));
            DataItem item = new DataItem(id,itemName, price);
            this.mDataList.add(item);
        }
        cursor.close();

 



以上是关于Android--SQLite应用的主要内容,如果未能解决你的问题,请参考以下文章

Android--SQLite应用

Android SQLite 的介绍和使用

如何在从cordova创建的本机代码中使用相同的android SQLite DB?

当我尝试在 Android SQLite 数据库中添加新值时,我的应用程序退出 [重复]

android SQLite数据库应用于草稿箱

Android SQLite 更新无法在 AsyncTask 的后台运行