iT邦幫忙

2023 iThome 鐵人賽

DAY 10
1

OK
我想不知道的人會想說這是啥
先來一串ChatGPT的介紹/images/emoticon/emoticon25.gif

Dapper 是一種輕量級的對象關係映射(ORM)庫,用於在 .NET 應用程序中進行數據庫訪問。

ORM 是一種技術,它允許開發人員在 Spark 語言中使用對象來表示數據庫中的表和數據,而直接編寫複雜的SQL 查詢語句。Dapper 分區能夠提供性能和簡化數據庫訪問,而不會引入複雜的抽象層。

‵其實就是 在我們的程式語言中像直接操作物件一樣地去操作資料。`

以下是 Dapper 的一些主要特點和優勢:

輕量級和性能:Dapper 是一個輕量級庫,不會引入過多的複雜性。它的性能非常出色,因為它非常接近於接近 ADO.NET 數據庫訪問,減少了開銷。

最初允許 SQL 支持:Dapper 開發人員編寫並執行 SQL 查詢,這使您可以更靈活地操作數據庫,而不受 ORM 限制。

對象映射:Dapper 可以將數據庫中的行數據映射到.NET對像中,這使得數據訪問更加自然和方便。你可以定義對象和數據庫表之間的映射關係。

存儲過程支持:Dapper 支持存儲過程的調用,這對於處理複雜的數據庫邏輯非常有用。

多種數據庫支持:Dapper可以與多種關係型數據庫一起使用,包括SQL Server、MySQL、PostgreSQL、SQLite等。

開源和活躍的社區:Dapper 是一個開源項目,擁有活躍的社區支持,您可以獲得廣泛的文檔、示例代碼和解決問題的資源。

雖然Dapper 提供了高度的靈活性和性能,但它也需要開發人員手動管理SQL 查詢和數據庫連接。與一些全功能的ORM 框架相比,Dapper 的使用學習曲線可能更陡峭,因為它需要開發人員更陡峭。多地參與數據庫操作的細節。然而,對於需要更多控制和性能的應用程序來說,Dapper 可能是一個不錯的選擇。

範例:

//命名一個叫 Product 的類別
public class Product
{
    public int ProductId { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

要記得引用

using System;
//要使用DAPPER要記得引用以下三個
using System.Data.SqlClient;
using System.Data;
using Dapper;

class Program
{
    static void Main()
    {
        string connectionString = "YourConnectionStringHere"; // 換成你的資料庫連接字串

        using (IDbConnection dbConnection = new SqlConnection(connectionString))
        {
            dbConnection.Open(); //打開資料庫連接

            // 執行 SQL 查詢到對應的 Product 列表
            var products = dbConnection.Query<Product>("SELECT * FROM Products");

            // 輸出查詢结果
            foreach (var product in products)
            {
                Console.WriteLine($"Product ID: {product.ProductId}, Name: {product.Name}, Price: {product.Price:C}");
            }
        } //資料庫連接自動關閉
    }
}

以上就是簡易的使用 Dapper 的 Query 方法執行 SQL 查詢~
Dapper 還有一些針對不同查詢的 Query 方法

QueryFirst 只取第一筆,如果找不到就報錯
QueryFirstOrDefault 只取第一筆,如果找不到就丟回預設值
QuerySingle,只取一筆,如果找不到或是找到多筆符合的就報錯
QuerySingleOrDefault 只取一筆,如果找不到就丟回預設值,找到多筆符合的就報錯
可以再上網研究一下XD

參考來源:
Dapper常用筆記
菜雞新訓記 (3): 使用 Dapper 來連線到資料庫 CRUD 吧


上一篇
day9. Visual Studio 快捷鍵
下一篇
day11. LINQ Lambda表達式查詢法
系列文
新手工程師第一份專案會遇到的職場大小事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ggtsai
iT邦新手 5 級 ‧ 2023-09-15 23:09:10

厲害 這個內容很眼熟
但還是給個讚

我要留言

立即登入留言