zoukankan      html  css  js  c++  java
  • UWP开发随笔——使用SQLite数据库

    摘要

    大多数的app都需要数据存储,在数据存储这方面,强大的windows把app数据分为两种:settings和files,并提供了十分简洁的api,让开发者能够轻松使用。但是在有些场景下,app的数据存储需要有database的支持,而sqlite,由于它轻量、高效、跨平台的特性,已经成为移动客户端开发中不可或缺的一部分。今天,小编就简单介绍一下如何在uwp开发中使用sqlite数据库。

    环境配置

    1.下载和安装SQLite

    要使用sqlite,首先是要从sqlite.org下载SQLite啦,附上下载页的链接http://sqlite.org/download.html,然后选择UAP的版本:

    下载下来的是一个VSIX的安装包,安装后重启VS,选择Tools -> Extensions and Updates… -> Installed -> SDKs中,会看到SQLite for Universal App Platform,说明SQLite已经安装完成!!

    2.在工程中添加对SQLite的引用

    现在,在我们的VS中,已经有了SQLite的集成,在相应工程目录下添加对SQLite的引用即可,右键点击References –> Add Reference,选择对SQLite的添加。

    3.添加.Net支持

    如果要使用C#的开发,还需要对工程本身进行进一步的配置,这就需要NuGet的帮助了。

    右键点击工程名,选择Manage NuGet Packages…,然后搜索SQLitePCL,Install即可。

    安装完成后,在Project的References里,便会多出一个SQLitePCL的引用。

    图中红色方块里圈出的部分,其中上面的是对SQLite的引用,下面的是对SQLitePCL的引用。

    在此完成之后,就可以使用SQLite开发了!!当然,在相应的文件中,不要忘了添加using SQLitePCL哦!!

    定义SQL语句常量

    在实际开发中,通常是把SQL语句统一起来进行管理,有的开发者在使用db过程中也喜欢使用一些Contract来使编码更加规范,为了更加清晰明了,这里只提供一些最基本的SQL语句供大家参考。

            private static String DB_NAME = "SQLiteSample.db";
            private static String TABLE_NAME = "SampleTable";
            private static String SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (Key TEXT,Value TEXT);";
            private static String SQL_QUERY_VALUE = "SELECT Value FROM " + TABLE_NAME + " WHERE Key = (?);";
            private static String SQL_INSERT = "INSERT INTO " + TABLE_NAME + " VALUES(?,?);";
            private static String SQL_UPDATE = "UPDATE " + TABLE_NAME + " SET Value = ? WHERE Key = ?";
            private static String SQL_DELETE = "DELETE FROM " + TABLE_NAME + " WHERE Key = ?"

    建立第一张表

    当你定义好一些SQL命令之后,就可以对数据库进行一系列的操作,最基本的当然是create table啦,以下给出实例代码:

    _connection = new SQLiteConnection(DB_NAME);
    using (var statement = _connection.Prepare(SQL_CREATE_TABLE))
    {
        statement.Step();
    }

    由于执行SQL语句的代码大致一样,所以不过多赘述,给出样例代码,其中key和value都是String变量。

    INSERT

    using (var statement = _connection.Prepare(SQL_INSERT))
    {
        statement.Bind(1, key);
        statement.Bind(2, value);
        statement.Step();
    }

    DELETE

    using (var statement = _connection.Prepare(SQL_DELETE))
    {
        statement.Bind(1, key);
        statement.Step();
    }

    UPDATE

    using(var statement = _connection.Prepare(SQL_UPDATE))
    {
        statement.Bind(1, value);
        statement.Bind(2, key);
        statement.Step();
    }

    QUERY

    using (var statement = _connection.Prepare(SQL_QUERY_VALUE))
    {
        statement.Bind(1, key);
        SQLiteResult result = statement.Step();
        if (SQLiteResult.ROW == result)
        {
            value = statement[0] as String;
        }
    }

    值得说明的是,在statement执行Step()的过程中,会返回一个SQLiteResult的返回值,在遍历返回结果的过程中,判断result是不是SQLiteResult.ROW就可以,关于SQLiteResult的具体内容,请参考SQLite.org的文档说明。

    其它

    说了半天使用SQLite开发,那么我们创建出来的数据库究竟在存放在哪里呢?系统默认是放在这个路径的:C:Users(username)AppDataLocalPackages(packagename)LocalState,其中username当然就不用小编解释了,当然就是您的用户名喽!packagename可以在工程目录里面的Package.appxmanifest文件里查看,如图:

     

    在这个路径下,我们能找到以我们的DB_NAME命名的文件,如SQLiteSample.db。

    那么,我们怎么才能查看这种数据库呢,这里有许多第三方工具可以使用,小编比较推荐SQLite Expert,界面简单友好,使用方便,并且有personal的版本,完全免费哦。

    结语

    在uwp开发中,使用SQLite是一件很简单的事情,配合windows强大的存储功能和简洁的开发接口,让我们一起来开发美妙的uwp application吧!

  • 相关阅读:
    js:数据结构笔记13--检索算法
    ember.js:使用笔记9 开始单元测试
    js:数据结构笔记12--排序算法(2)
    js:数据结构笔记11--排序算法(1)
    js:数据结构笔记10--图和图算法
    js:数据结构笔记9--二叉树
    js:数据结构笔记8--集合
    js:数据结构笔记7--哈希表
    js:数据结构笔记6--字典
    js:数据结构笔记5--链表
  • 原文地址:https://www.cnblogs.com/ms-uap/p/4798269.html
Copyright © 2011-2022 走看看