• C#实战:Dapper操作PostgreSQL笔记


    一、PostgreSQL简介

    PostgreSQL,是一款开源的物理数据库管理系统(RDBMS),它能够实现跨平台的数据库安装以及管理,同时还提供了许多高端的特性,是当今最被推崇的数据库软件之一。PostgreSQL 是一种ACID兼容的对象关系数据库,使用灵活可扩展的SQL语言进行标准化编程,它可以处理复杂的数据,支持多种开源数据库,包括MySQL、Oracle和IBM DB2等。

    PostgreSQL和MySQL几点主要区别

    数据类型:PostgreSQL支持更多的数据类型,例如复杂数据类型、文本类型、时间戳类型等。

    事务处理:PostgreSQL支持多种事务隔离级别,可以实现更高的事务性能和数据安全性。

    分布式数据库:PostgreSQL支持分布式数据库,可以将数据分散在多个计算机上,提高处理大数据量的能力。

    安全性:PostgreSQL提供了多种安全措施,可以更好地保护数据的安全性。

    数据完整性:PostgreSQL提供了数据完整性检查功能,可以检查表格和索引中的数据完整性,避免出现错误或异常。

    大数据量:PostgreSQL可以处理大量的数据,具有较高的性能和稳定性。

    二、PostgreSQL组件

    数据库引擎:PostgreSQL数据库引擎是一组CLI和命令行工具,用于管理和查询数据库。它使用C语言编写,并提供了许多高级功能,例如复制,分区,事务,视图和索引等。

    数据库存储引擎:PostgreSQL的存储引擎是一组用于存储和检索数据的API。它们负责管理数据的物理存储,并与操作系统和文件系统交互。PostgreSQL支持多种存储引擎,例如Btree,Hash,GIS和qtree等。

    数据库管理器:PostgreSQL数据库管理器是一个用户界面工具,可以通过命令行或图形用户界面(GUI)进行访问。它提供了许多功能,例如创建,修改和删除数据库,创建和管理表和索引,备份和恢复数据库,检查和修复错误等。

    插件和扩展:PostgreSQL提供了许多插件和扩展,用于扩展其功能和用途。这些插件和扩展可以用于各种目的,例如提高性能,管理用户身份验证,连接到外部资源等。

    三、PostgreSQL的主要优点

    可靠性:PostgreSQL是一个高可靠性的数据库系统,具有多种容错和故障恢复机制。

    可扩展性:PostgreSQL可以轻松地扩展,可以在一个或多个节点上运行,并使用分区和复制技术来水平扩展。

    性能:PostgreSQL在多个方面提供了高性能,例如使用行级锁定,分区表和分区索引等技术来优化查询性能。

    安全性:PostgreSQL提供了多种安全措施,例如用户身份验证,数据加密和备份,以确保数据安全。

    社区支持:PostgreSQL拥有庞大的开发和用户社区,可以提供丰富的文档,支持和资源。

    社区官网:PostgreSQL中文社区:: 世界上功能最强大的开源数据库...

    四、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、数据库链接示例

    建议大家写在配置文件里面,这里只做演示使用

    1. public string GetConnectioning(string servername, string uid, string pwd, string db, string port)
    2. {
    3. return string.Format("host={0};User ID={1};password={2};database={3};port={4};pooling=false;", servername, uid, pwd, db, port);
    4. }

    4、通过SQL查询数据列表写法

    1. public List GetList(string conStr, string sql)
    2. {
    3. using (NpgsqlConnection connection = new NpgsqlConnection(conStr))
    4. {
    5. var list = connection.Query(sql).ToList();
    6. return list;
    7. }
    8. }

    5、插入示例写法

    1. public int Insert(string conStr)
    2. {
    3. int result = 0;
    4. try
    5. {
    6. using (NpgsqlConnection connection = new NpgsqlConnection(conStr))
    7. {
    8. var sql = "insert into t_user(name, age, address, hobby) values(@a1, @b1, @c1, @d1), (@a2, @b2, @c2, @d2)";
    9. DynamicParameters dynamicParameters = new DynamicParameters();
    10.                     dynamicParameters.Add("a1", "value");
    11.                     dynamicParameters.Add("b1", "value");
    12.                     dynamicParameters.Add("c1", "value");
    13.                     dynamicParameters.Add("d1", "value");
    14.                     dynamicParameters.Add("a2", "value");
    15.                     dynamicParameters.Add("b2", "value");
    16.                     dynamicParameters.Add("c2", "value");
    17.                     dynamicParameters.Add("d2", "value");
    18.                     result = connection.ExecuteScalar(sql, dynamicParameters);
    19. }
    20. }
    21. catch
    22. {
    23. }
    24. return result;
    25. }

    其余写法大家可以参考上面的写法自己来写,有问题的话可以沟通交流。

  • 相关阅读:
    分类预测 | Matlab实现基于BP-Adaboost数据分类预测
    【面试题】2023虹软计算机视觉一面
    程序员新手村常见问题
    【论文精读】VOYAGER: An Open-Ended Embodied Agent with Large Language Models
    白盒测试中的几种覆盖方法
    Python代码部署的三种加密方案:代码混淆、代码编译、代码打包
    【软考:系统集成项目管理】之 五组十域图
    【数字IC前端入门】02-FPGA基础知识
    计组笔记1-计算机系统概论
    【js】单文件上传和大文件分片上传功能实现
  • 原文地址:https://blog.csdn.net/xishining/article/details/131180818