简述一下网站的设计流程,网站建设it职位,wordpress 文字链接,用jsp做网站LiteDB介绍
LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。
无服务器的 NoSQL 文档存储简单的 API#xff0c;类似于 MongoDB100% 的 C# 代码支持 .NET 4.5 / NETStandard 1.3/2.0#xff0c;以单个 DLL#xff08;不到 450KB#xff09;形式提供线程安全…LiteDB介绍
LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。
无服务器的 NoSQL 文档存储简单的 API类似于 MongoDB100% 的 C# 代码支持 .NET 4.5 / NETStandard 1.3/2.0以单个 DLL不到 450KB形式提供线程安全支持 ACID完整的事务支持写入失败后的数据恢复WAL 日志文件使用 DESAES加密算法对数据文件进行加密使用属性或流畅的映射器 API 将 POCO 类映射为 BsonDocument存储文件和流数据类似于 MongoDB 的 GridFS单一数据文件存储类似于 SQLite对文档字段建立索引以实现快速搜索支持 LINQ 查询提供类似于 SQL 的命令来访问/转换数据LiteDB Studio - 数据访问的精美用户界面开源且免费供所有人使用包括商业用途
nuget安装
dotnet add package LiteDB --version 5.0.21BsonRef定义关联关系
using LiteDB;namespace LiteDBAPI.Models
{public class Customer:BaseClass{[BsonField(customername)]public string Name { get; set; }}public class Order: BaseClass{[BsonField(price)]public double Price { get; set; }[BsonRef(customers)]public Customer Customer { get; set; }}public class BaseClass{[BsonId]public ObjectId ID { get; set; }}
}
封装helper
using LiteDB;
using LiteDBAPI.Models;
using System.Linq.Expressions;namespace LiteDBAPI
{public class LiteDBHelper{public readonly LiteDatabase db;public LiteDBHelper(){db new LiteDatabase(Filenamedatabase.db;Password1234;Connectionshared);}public BsonValue insertT(T value,string collectionName){// Get a collection (or create, if doesnt exist)var col db.GetCollectionT(collectionName);// Insert new customer document (Id will be auto-incremented)return col.Insert(value); }public T getOrderT, TRelated(string orderid,string collectionName, ExpressionFuncT, TRelated includeExpression) where T : BaseClass{ObjectId objectId new ObjectId(orderid);var col db.GetCollectionT(collectionName);return col.Query().Where(x x.ID objectId).Include(includeExpression).FirstOrDefault();}public bool updateT(T instance,string collectionName){var col db.GetCollectionT(collectionName);return col.Update(instance);}public ListT queryByConditionT(string collectionName,Dictionarystring,string keyValuePairs){var col db.GetCollectionT(collectionName);// Create a list to hold individual query expressionsvar queryList new ListBsonExpression();BsonExpression? combinedQuery null;// Loop through the key-value pairs and create equality conditionsforeach (var pair in keyValuePairs){queryList.Add(Query.EQ(pair.Key, pair.Value));}if (queryList.Count1){// Combine the individual conditions into an AND querycombinedQuery Query.And(queryList.ToArray());}else{combinedQuery queryList[0];}// Execute the query and return the results as a listreturn col.Find(combinedQuery).ToList();}}
}
controller使用
using LiteDB;
using LiteDBAPI.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;namespace LiteDBAPI.Controllers
{[Route(api/[controller]/[action])][ApiController]public class LiteDBController : ControllerBase{private readonly LiteDBHelper db;public LiteDBController(LiteDBHelper db){this.db db;}[HttpPost]public IActionResult insert([FromBody] string customername){Customer customer new Customer() { Name customername };// customerthis.db.insert(customer, customers);// orderthis.db.insert(new Order() { Customercustomer }, orders);return Ok(new { resultsuccess});}[HttpGet]public Order getOrder([FromQuery] string orderid){return db.getOrderOrder,Customer(orderid,orders,xx.Customer);}[HttpPut]public IActionResult updatePrice([FromQuery] string orderid){Order order db.getOrderOrder, Customer(orderid, orders, x x.Customer);order.Price order.Price 100;return Ok(db.updateOrder(order, orders));}[HttpPost]public ListCustomer getCustomer([FromBody] Dictionarystring,string keyValuePairs){return db.queryByConditionCustomer(customers,keyValuePairs);}}
}
加密
通过更改连接参数添加password实现
官网
代码