C#實戰:Dapper操作PostgreSQL筆記
PostgreSQL是一個功能非常強大的、源代碼開放的客戶/服務器關系型數據庫管理系統(RDBMS)
PostgreSQL組成
數據庫引擎:PostgreSQL數據庫引擎是一組CLI和命令行工具,用于管理和查詢數據庫。它使用C語言編寫,并提供了許多高級功能,例如復制,分區,事務,視圖和索引等。
數據庫存儲引擎:PostgreSQL的存儲引擎是一組用于存儲和檢索數據的API。它們負責管理數據的物理存儲,并與操作系統和文件系統交互。PostgreSQL支持多種存儲引擎,例如Btree,Hash,GIS和qtree等。
數據庫管理器:PostgreSQL數據庫管理器是一個用戶界面工具,可以通過命令行或圖形用戶界面(GUI)進行訪問。它提供了許多功能,例如創建,修改和刪除數據庫,創建和管理表和索引,備份和恢復數據庫,檢查和修復錯誤等。
插件和擴展:PostgreSQL提供了許多插件和擴展,用于擴展其功能和用途。這些插件和擴展可以用于各種目的,例如提高性能,管理用戶身份驗證,連接到外部資源等。
PostgreSQL的主要優點
可靠性:PostgreSQL是一個高可靠性的數據庫系統,具有多種容錯和故障恢復機制。
可擴展性:PostgreSQL可以輕松地擴展,可以在一個或多個節點上運行,并使用分區和復制技術來水平擴展。
性能:PostgreSQL在多個方面提供了高性能,例如使用行級鎖定,分區表和分區索引等技術來優化查詢性能。
安全性:PostgreSQL提供了多種安全措施,例如用戶身份驗證,數據加密和備份,以確保數據安全。
社區支持:PostgreSQL擁有龐大的開發和用戶社區,可以提供豐富的文檔,支持和資源。
社區官網:http://www.postgres.cn/index.php/v2/home
PostgreSQL的使用場景
數據庫應用程序:PostgreSQL可用于構建各種類型的數據庫應用程序,例如企業應用程序,電子商務應用程序和金融應用程序等。
電子商務:PostgreSQL是許多電子商務網站的首選數據庫,例如Amazon和eBay。
門戶網站:PostgreSQL可用于構建門戶網站,例如Wikipedia和Google。
游戲:PostgreSQL可用于構建游戲服務器,例如World of Warcraft和Counter-Strike: Global Offensive。
科學計算:PostgreSQL是許多科學計算應用程序的首選數據庫,例如Apache Spark和TensorFlow。
媒體和娛樂:PostgreSQL可用于構建媒體和娛樂應用程序,例如Netflix和Hulu。
金融服務:PostgreSQL是許多金融服務應用程序的首選數據庫,例如ING Direct和Capital One 360。
其他應用程序:PostgreSQL適用于各種應用程序和場景,例如醫療保健,物流,教育和政府等。
示例
今天給大家分享通過Dapper來操作PostgreSQL數據庫。
首先新建一個控制臺項目,開發框架是NetFrameWork v4.5.2
1、安裝dapper,目前本案例安裝的版本是1.50.2
2、安裝PostgreSQL驅動
nuget直接搜索 npgsql 這里安裝的版本是4.0.0
3、數據庫鏈接示例
建議大家寫在配置文件里面,這里只做演示使用
public string GetConnectioning(string servername, string uid, string pwd, string db, string port)
{
return string.Format("host={0};User ID={1};password={2};database={3};port={4};pooling=false;", servername, uid, pwd, db, port);
}
4、通過SQL查詢數據列表寫法
public List GetList(string conStr, string sql)
{
using (NpgsqlConnection connection = new NpgsqlConnection(conStr))
{
var list = connection.Query(sql).ToList();
return list;
}
}
5、插入示例寫法
public int Insert(string conStr)
{
int result = 0;
try
{
using (NpgsqlConnection connection = new NpgsqlConnection(conStr))
{
var sql = "insert into t_user(name, age, address, hobby) values(@a1, @b1, @c1, @d1), (@a2, @b2, @c2, @d2)";
DynamicParameters dynamicParameters = new DynamicParameters();
dynamicParameters.Add("a1", "value");
dynamicParameters.Add("b1", "value");
dynamicParameters.Add("c1", "value");
dynamicParameters.Add("d1", "value");
dynamicParameters.Add("a2", "value");
dynamicParameters.Add("b2", "value");
dynamicParameters.Add("c2", "value");
dynamicParameters.Add("d2", "value");
result = connection.ExecuteScalar(sql, dynamicParameters);
}
}
catch
{
}
return result;
}