首页 > 数据库 >SqlSugar:基于SQLSugar框架在 .Net环境中搭建PostgreSQL数据库访问、操作的框架,C#连接访问PostgreSQL数据库

SqlSugar:基于SQLSugar框架在 .Net环境中搭建PostgreSQL数据库访问、操作的框架,C#连接访问PostgreSQL数据库

时间:2024-05-28 09:04:00浏览次数:22  
标签:PostgreSQL 框架 数据库 System ID ---- item using public

SqlSugar 是一款 老牌 .NET开源ORM框架,由果糖大数据科技团队维护和更新 ,开箱即用最易上手的ORM 

优点 :【生态丰富】【高性能】【超简单】 【功能全面】 【多库兼容】【适合产品】 【SqlSugar视频教程】 

支持 : .net framework  .net core3.1  .ne5 .net6 .net7 .net8 .net9 

特色 : 拥有全球最活跃的ORM线上论坛,比EF还要活跃,交流群人数已超过万人 ,技术支持快,口碑好。

详情请看SqlSugar 官方教程SqlSugar .Net ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网

概览

本文描述了在.Net环境中使用SQLSugar框架连接及访问PostgreSQL数据库的详细操作过程,主要包括四个步骤:1 下载SqlSugar包  2 创建初始化并连接数据库工具类 3 创建数据操作类 4调用操作类访问数据库。

1.下载SqlSugar包

1.1 下载

​​​在NuGet包管理器中搜索sqlsugar。注:.Net Framework框架选择SqlSugar,如果是.Net框架下则选择SqlSugarCore。

1.2引用

using SqlSugar

2.连接

创建数据库访问基类,代码中加密解密步骤可以根据实际需求省略或自设

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms.Design;

namespace DemoSummaryZT.DatabaseOperation
{
    /// <summary>
    /// 数据库访问基类
    /// </summary>
    public  class PGSql
    {
        public static SqlSugarScope PG_db = null;
        /// <summary>
        /// 初始化数据库连接
        /// </summary>
        /// <param name="server">主机IP</param>
        /// <param name="port">端口</param>
        /// <param name="database">数据库名称</param>
        /// <param name="userId">用户名</param>
        /// <param name="passWord">密码</param>
        /// <param name="ifJiaMi">是否加密</param>
        public static void InitialPGSql(string server, string port, string database, string userId, string passWord, bool ifJiaMi)
        {

            if (ifJiaMi)
            {
                passWord = Encryption.DecryptStringFromBytes_Aes(passWord, "PostgreSQLExample");//解密密码
            }
            PG_db = new SqlSugarScope(new ConnectionConfig
            {
                ConnectionString = $"Server={server};Port={port};Database={database};User Id={userId};Password={passWord}",
                DbType = DbType.PostgreSQL,
                IsAutoCloseConnection = true,
            });  // 使用SqlSugarScope建立PostgreSQL数据库连接


        }
        /// <summary>
        /// 获取数据库Postgre当前时间
        /// </summary>
        /// <returns></returns>
        public DateTime GetPostgreDateTime()
        {
            return PG_db.Ado.GetDateTime("select now();");
        }


    }
}

3.创建增删改查工具类

3.1创建数据库表

数据库表可以根据实际的环境创建,用SQL语句或者可视化开发工具,这里用的是DBeaver

3.2创建跟数据库表相对应的映射类

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoSummaryZT.DataModel
{
    /// <summary>
    /// 用户信息
    /// </summary>
    [SugarTable("user_table")]
    public class UserTable
    {
        public string ID { get; set; }
        /// <summary>
        /// 年龄
        public int Age { get; set; }
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }
       

    }
}

3.3分别创建增删改查工具类

注意,这里的所有操作类都继承步骤2中的PGSql类

using DemoSummaryZT.DataModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoSummaryZT.DatabaseOperation
{
    public  class AddUser :PGSql
    {
        /// <summary>
        /// 新增用户
        /// </summary>
        public static void AddNewUser(UserTable ut)
        {
            try
            {
                var res = PG_db.Insertable(ut).ExecuteCommand();
                if (res > 0)
                {
                    return ;
                }
                else
                {
                    return ;
                }
            }
            catch (Exception ex)
            {
                return;
            }
        }

    }

    
}
using DemoSummaryZT.DataModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoSummaryZT.DatabaseOperation
{
    public  class DeleteUser:PGSql
    {
        /// <summary>
        /// 删除用户
        /// </summary>
        public static void Delete(string id)
        {
            try
            {

                var res = PG_db.Deleteable<UserTable>().In(it => it.ID , id).ExecuteCommand();
              //  var res = PG_db.Deleteable<UserTable>().In(100).ExecuteCommand();
              
                if (res > 0)
                {
                    return;
                }
                else
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                return;
            }
        }

    }
}
using DemoSummaryZT.DataModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoSummaryZT.DatabaseOperation
{
    public  class ModifyUser:PGSql
    {


        public static  void Modify(UserTable ut)
        {
            var result = PG_db.Updateable(ut).Where(a=>a.ID==ut.ID ).ExecuteCommand();
        }

    }
}
using DemoSummaryZT.DataModel;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace DemoSummaryZT.DatabaseOperation
{

    public  class QueryUser:PGSql
    {

        /// <summary>
       /// 查询所有的用户
        /// </summary>
        public static List<UserTable> QueryUserName()
        {
            List<UserTable>list = PG_db.Queryable<UserTable>().ToList();
            return list;
        }
    }
}

4.调用操作类访问数据库

创建控制台程序,调用数据库访问工具类并运行

using DemoSummaryZT.DatabaseOperation;
using DemoSummaryZT.DataModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DemoSummaryZT
{
    internal static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {

            //初始化数据库连接
            PGSql.InitialPGSql("localhost", "5432", "postgres", "postgres", "postgres", false);
            //查询数据
            Console.WriteLine("----新查询----");
            List<UserTable> userList = QueryUser.QueryUserName();
            foreach (var item in userList)
            {
                Console.WriteLine("用户名:{0}\t\t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
            }
            //新增数据
            Console.WriteLine("----新增数据----");
            UserTable userTable = new UserTable();
            userTable.ID = "100";
            userTable.Name = "新增用户";
            userTable.Age = 47;
            AddUser.AddNewUser(userTable);
            Console.WriteLine("----新查询----");
            List<UserTable> userList1 = QueryUser.QueryUserName();
            foreach (var item in userList1)
            {
                Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
            }
            //修改数据
            Console.WriteLine("----修改数据----");
            UserTable userTable1 = new UserTable();
            userTable1.ID = "100";
            userTable1.Name = "新增用户名被修改";
            userTable1.Age = 47;
            ModifyUser.Modify(userTable1);
            Console.WriteLine("----新查询----");
            List<UserTable> userList2 = QueryUser.QueryUserName();
            foreach (var item in userList2)
            {
                Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
            }
            //删除数据
            Console.WriteLine("----删除数据-新增用户----");
            Console.WriteLine("----删除数据-新增用户----");
            DeleteUser.Delete("100");
            Console.WriteLine("----新查询----");
            List<UserTable> userList3 = QueryUser.QueryUserName();
            foreach (var item in userList3)
            {
                Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
            }
        }
    }
}

查看运行结果

标签:PostgreSQL,框架,数据库,System,ID,----,item,using,public
From: https://blog.csdn.net/weixin_46540714/article/details/139243240

相关文章

  • Vue框架-路由
    VueRouter笔记1.路由管理安装方式一:采用单页面CDN引入方式使用.方式二:基于vite构建的前端项目工程,安装依赖:在项目根目录下,安装:npminstallvue-router@4-s检查项目根目录下package.json中的dependencies是否多出:"vue-router"依赖.路由简单使用在sr......
  • [分享]OffensiveCon24 UEFI 和翻译器的任务:使用跨架构 UEFI Quines 作为 UEFI 漏洞开
    链接:OffensiveCon24-uefi-task-of-the-translator目录x64assemblyx64程序集x64assemblysourcecodeforBGGP4entry:bggp4winningentry-x64assemblysourcecodeBGGP4UEFISelf-replicatingapp:bggp4winningentry-UEFIself-replicatingapp,compiledfromx64......
  • 数据库初始,SQL语句介绍,MySQL数据库安装,SQL语句基础,操作MySQL数据库
    Ⅰ数据库初识【一】存储数据的演变过程【1】文件基于内存保存在早期,随意地存放到一个文件中、数据格式也是千差万别的,完全取决于个人员工管理系统是基于列表或字典(内存)存储数据【2】文件操作用本地的文本文件存储数据有的人喜欢存储到本地的一个文件中有的人喜欢存......
  • 成为MySQL DBA后,再看ORACLE数据库(二、监听与连接)
    一、监听器的启动ORACLE启动完成后,可以通过sqlplus/assysdba连接数据库,但是这个只是本地连接,无法通过tcp/ip远程访问数据库,这时候就要启动ORAClE的监听器。启动监听器的命令是lsnrctlstart,启动成功后,可以观察到1521端口也随之监听,这时候就能通过ip加端口远程访问数据库了。在......
  • 每天五分钟深度学习框架pytorch:tensor张量的维度转换大全
    本文重点在深度学习中比较让人头疼的一点就是矩阵的维度,我们必须构建出符合神经网络维度的矩阵,只有将符合要求的矩阵放到神经网络中才可以运行神经网络,本节课程我们将学习以下tensor中维度的变化。view和shapeView和shape,这两个方法可以完成维度的变换操作,而且使用方法是一......
  • 【讲解下Web前端三大主流的框架】
    ......
  • 数据库聚簇索引——not null条件对唯一键索引成为聚簇索引的影响
    数据库聚簇索引的规则如下:如果有主键,则主键是聚簇索引(当然主键也不一定是单个列的);如果没有主键,但是有notnull修饰的唯一键索引,则这个索引是聚簇索引;都没有,创建一个叫db_row_id的6字节隐藏列为聚簇索引,这个索引程序员不可见(这个列存在一定冲突和性能问题,详见大佬:https://www.c......
  • Django框架前后端通信打通实战(PyCharm高级版)
    1.创建django项目并做好相关配置首先在pycharm高级版中创建django项目(1)选择左上角的四条小横线,然后找到文件下面的新建项目并点击,如下图:(2)点击完上图的新建项目之后,来到下面的页面. 然后点击左上角的Django,然后设置文件的位置,之后将模版文件夹的template这个单......
  • 基于JAVA GUI的JDBC连接数据库
     要在JavaGUI中连接数据库,需要执行以下几个步骤:导入必要的包。你需要导入Java数据库连接相关的包,例如java.sql和javax.sql。与数据库连接相关的类和接口。  (1)DriverManger类。DriverManager类用于加载JDBD驱动并且创建其与数据库的连接。在DriverManager类中定义了......
  • springboot项目中数据库连接加密方法
    1、maven添加相应版本的依赖,比如com.github.ulisesbocchiojasypt-spring-boot-starter2.1.22、设置项目启动参数,此参数作为加密的盐值,比如-Djasypt.encryptor.password=盐值3、下载jasypt-xxx.jar包,用此jar生成加密后的数据库连接密码从这里下载http://www.jasypt.org/do......