本教程将指导您如何开始使用MySQL Connector/NET作为文档存储。有关概念和其他用法示例,请参见X DevAPI用户指南.
MySQL脚本提供了数据和JSON集合。该示例包含以下内容:
集合
countryinfo:关于世界各国的信息。
表
国家:关于世界各国的最少信息。
城市:关于这些国家的一些城市的信息。
国家语言:每个国家使用的语言。
安装world_x
数据库示例,遵循以下步骤:
下载
world_x.zip
从http://dev.10bet靠谱mysql.com/doc/index-other.html.将安装存档解压缩到一个临时位置,例如
/ tmp /
.解包存档会生成两个文件,其中一个文件名为
world_x.sql
.使用MySQL客户端连接到MySQL服务器,命令如下:
$> mysql -u root -p
在出现提示时输入密码。非root帐户可以使用,只要该帐户具有创建新数据库的权限。有关使用MySQL客户端的更多信息,请参见mysql - mysql命令行客户端.
执行
world_x.sql
脚本创建数据库结构,并按如下方式插入数据:mysql >源/ temp / world_x.sql;
取代
/ temp /
与路径world_x.sql
在您的系统上存档。
创建一个新的Visual Studio控制台项目,目标是。net Framework 4.5.2(或更高版本)、。net Core 1.1或。net Core 2.0。本教程中的代码示例是用c#语言显示的,但您可以使用任何。net语言。
在你的项目中添加一个引用到以下dll:
MySql.Data.dll
Google.Protobuf.dll
X DevAPI中的会话是一个高级数据库会话概念,与使用传统的低级MySQL连接不同。重要的是要理解这个会话与传统的MySQL会话不同。会话封装一个或多个实际的MySQL连接。
下面的示例打开一个会话,您可以稍后使用该会话检索模式并执行基本的CRUD操作。
string schemaName = "world_x";//定义连接字符串string connectionURI = "mysqlx://test:test@localhost:33060";会话= MySQLX.GetSession(connectionURI);//获取模式对象schema schema = session.GetSchema(schemaName);
在实例化会话之后,您可以执行一个查找操作。下一个例子使用了你创建的session对象:
//使用集合'countryinfo' var myCollection = schema.GetCollection("countryinfo");var docParams = new DbDoc(new {name1 = "阿尔巴尼亚",_id1 = "ALB"});//查找文档DocResult foundDocs = myCollection。Find("Name =:name1 || _id =:_id1").Bind(docParams).Execute();while (foundDocs.Next()) {Console.WriteLine(foundDocs.Current["Name"]);Console.WriteLine (foundDocs.Current [" _id "]);}
//插入一个带有标识符的新文档var obj = new {_id = "UKN", Name = "Unknown"};结果r = myCollection.Add(obj).Execute();
//使用之前创建的相同docParams对象docParams = new DbDoc(new {name1 = "Unknown", _id1 = "UKN"});r = myCollection。修改(“_id =: Id”)。绑定(“id”、“UKN”)。集(“大”,“3308”). execute ();if (r.AffectedItemsCount == 1) {foundDocs = myCollection. if (r.AffectedItemsCount == 1) {找到(“Name =: name1 | | _id =: _id1”).Bind (docParams) . execute ();while (foundDocs.Next()) {Console.WriteLine(foundDocs.Current["Name"]);Console.WriteLine (foundDocs.Current [" _id "]);Console.WriteLine (foundDocs.Current["国民生产总值"]);}}
下面的示例展示了可以对集合执行的基本操作。
使用MySqlX.XDevAPI;使用MySqlX.XDevAPI.Common;使用MySqlX.XDevAPI.CRUD;使用系统;命名空间MySQLX_Tutorial {class Program {static void Main(string[] args) {string schemaName = "world_x";string connectionURI = "mysqlx://test:test@localhost:33060";会话= MySQLX.GetSession(connectionURI);Schema = session.GetSchema(schemaName);//使用集合'countryinfo' var myCollection = schema.GetCollection("countryinfo");var docParams = new DbDoc(new {name1 = "阿尔巴尼亚",_id1 = "ALB"}); // Find a document DocResult foundDocs = myCollection.Find("Name = :name1 || _id = :_id1").Bind(docParams).Execute(); while (foundDocs.Next()) { Console.WriteLine(foundDocs.Current["Name"]); Console.WriteLine(foundDocs.Current["_id"]); } //Insert a new document with an id var obj = new { _id = "UKN", Name = "Unknown" }; Result r = myCollection.Add(obj).Execute(); //update an existing document docParams = new DbDoc(new { name1 = "Unknown", _id1 = "UKN" }); r = myCollection.Modify("_id = :Id").Bind("id", "UKN").Set("GNP", "3308").Execute(); if (r.AffectedItemsCount == 1) { foundDocs = myCollection.Find("Name = :name1|| _id = :_id1").Bind(docParams).Execute(); while (foundDocs.Next()) { Console.WriteLine(foundDocs.Current["Name"]); Console.WriteLine(foundDocs.Current["_id"]); Console.WriteLine(foundDocs.Current["GNP"]); } } // delete a row in a document r = myCollection.Remove("_id = :id").Bind("id", "UKN").Execute(); //close the session session.Close(); Console.ReadKey(); } } }