Xamarin Sqlite数据库实现过程

继上一篇Xamarin的数据库交互的介绍后,今天跟大家分享一下另一个数据库的使用Sqlite数据库

要是我们之前接触过iOS或者Android源生开发的话,我想你对Sqlite已经有所了解了,Sqlite是一种嵌入式数据库,SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。由于资源占用少、性能良好和零管理成本,嵌入式数据库有了它的用武之地,像Android、iOS都有内置的SQLite数据库供开发人员使用,它的易用性可以加快应用程序的开发,并使得复杂的数据存储变得轻松了许多。

Sqlite数据的使用场景

我们在实际开发过程中,有的时候我们需要将一定不是很重要但是需要每次进入界面都需要加载读取的文件加载到本地,此时我们通常将这些数据保存到手机的本地,在iOS中我们可以通过偏好设置,归档,plist方式保存文件到沙盒,Android中我们可以通过读写操作保存到引用本地目录,但是有的时候我们对于那些像比较多一点的数据,我们可以通过在手机建立一个小型的数据库文件进行保存,例如搜索记录,浏览历史等。


Sqlite数据库的建立方式(iOS)

  • ADO.Net
  • Sqlite.Net

ADO.Net

添加System.Data 和 Mono.Data.SQLite类库的引用
Xamarin Sqlite数据库实现过程_第1张图片
类库.png
通过SqliteConnection 这个类的 CreateFile 的静态方法建立数据库
var documents = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var pathToDatabase = Path.Combine(documents, "db_adonet.db");
SqliteConnection.CreateFile(pathToDatabase);
建立数据库链接并创建数据库
var connectionString = String.Format("Data Source={0};Version=3;", pathToDatabase);
using (var conn= new SqliteConnection(connectionString))
{
    conn.Open();
    using (var cmd = conn.CreateCommand())
    {
        cmd.CommandText = "CREATE TABLE People (PersonID INTEGER PRIMARY KEY AUTOINCREMENT , FirstName ntext, LastName ntext)";
        cmd.CommandType = CommandType.Text;
        cmd.ExecuteNonQuery();
    }
}
然后读写操作就跟原来的C#基本相同直接操作就好

Sqlite.Net

添加System.Data和Mono.Data.Sqlite类库以及sqlite-net包
Xamarin Sqlite数据库实现过程_第2张图片
Paste_Image.png
Xamarin Sqlite数据库实现过程_第3张图片
Paste_Image.png
创建一个模型,设置表属性
    [Table("Items")]
    public class Stock
    {
        [PrimaryKey, AutoIncrement, Column("_id")]
        public int Id { get; set; }

        [MaxLength(8)]
        public string Symbol { get; set; }
    }

创建数据库文件到本地沙盒下
            var documents = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            var pathToDatabase = Path.Combine(documents, "db_adonet.db");
            Console.WriteLine(pathToDatabase);
            var db = new SQLiteConnection(pathToDatabase);
            db.CreateTable();
给数据库添加数据
 if (db.Table().Count() == 0)
            {
                // only insert the data if it doesn't already exist
                var newStock = new Stock();
                newStock.Symbol = "AAPL";
                db.Insert(newStock);

                newStock = new Stock();
                newStock.Symbol = "GOOG";
                db.Insert(newStock);

                newStock = new Stock();
                newStock.Symbol = "MSFT";
                db.Insert(newStock);
            }   
读取数据库内容
            var table = db.Table();
            foreach (var s in table)
            {
                Console.WriteLine("\n" + s.Id + " " + s.Symbol);
            }
这样增加数据和建立数据库的方式就实现了,同样改和删一样原理,这里不写出详细代码了。

这样Sqlite数据的基本操作就介绍这么多,同样我们也说说这其中应该注意的问题:

  • 首先我们需要了解什么时候我们需要用到Sqlite数据库,上篇文章我们降到,对于大量数据并且重要隐私的数据我们需要保存到服务器上,而这里我们建立的数据库只是保存一部分不是很重要的信息到本地,如果数据量比较多,我们还是需要保存到服务器。
  • 再者我们知道iOS源生中有偏好设置推荐只存储用户的偏好设置,不要存储一些字典、数组之类的,例如记住密码、自动登录等个人设置;plist一般保存NSString、NSArray、NSDictionary;归档一般将自定义对象以文本文件(二进制文件)格式保存。所以当我们真的要选择保存用户数据的时候,我们需要酌情处理,采用合适的方式保存。

如果有问题,欢迎大家留言告诉我。

——End 有问题可以加我微信,大家一起讨论

Xamarin Sqlite数据库实现过程_第4张图片

你可能感兴趣的:(Xamarin Sqlite数据库实现过程)