SqlSugar:基于SQLSugar框架在 .Net情况中搭建PostgreSQL数据库访问、操作的 ...

打印 上一主题 下一主题

主题 1788|帖子 1788|积分 5364

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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.连接

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

  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Windows.Forms.Design;
  8. namespace DemoSummaryZT.DatabaseOperation
  9. {
  10.     /// <summary>
  11.     /// 数据库访问基类
  12.     /// </summary>
  13.     public  class PGSql
  14.     {
  15.         public static SqlSugarScope PG_db = null;
  16.         /// <summary>
  17.         /// 初始化数据库连接
  18.         /// </summary>
  19.         /// <param name="server">主机IP</param>
  20.         /// <param name="port">端口</param>
  21.         /// <param name="database">数据库名称</param>
  22.         /// <param name="userId">用户名</param>
  23.         /// <param name="passWord">密码</param>
  24.         /// <param name="ifJiaMi">是否加密</param>
  25.         public static void InitialPGSql(string server, string port, string database, string userId, string passWord, bool ifJiaMi)
  26.         {
  27.             if (ifJiaMi)
  28.             {
  29.                 passWord = Encryption.DecryptStringFromBytes_Aes(passWord, "PostgreSQLExample");//解密密码
  30.             }
  31.             PG_db = new SqlSugarScope(new ConnectionConfig
  32.             {
  33.                 ConnectionString = $"Server={server};Port={port};Database={database};User Id={userId};Password={passWord}",
  34.                 DbType = DbType.PostgreSQL,
  35.                 IsAutoCloseConnection = true,
  36.             });  // 使用SqlSugarScope建立PostgreSQL数据库连接
  37.         }
  38.         /// <summary>
  39.         /// 获取数据库Postgre当前时间
  40.         /// </summary>
  41.         /// <returns></returns>
  42.         public DateTime GetPostgreDateTime()
  43.         {
  44.             return PG_db.Ado.GetDateTime("select now();");
  45.         }
  46.     }
  47. }
复制代码
3.创建增编削查工具类

3.1创建数据库表

数据库表可以根据实际的情况创建,用SQL语句大概可视化开发工具,这里用的是DBeaver


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

  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DemoSummaryZT.DataModel
  8. {
  9.     /// <summary>
  10.     /// 用户信息
  11.     /// </summary>
  12.     [SugarTable("user_table")]
  13.     public class UserTable
  14.     {
  15.         public string ID { get; set; }
  16.         /// <summary>
  17.         /// 年龄
  18.         public int Age { get; set; }
  19.         /// <summary>
  20.         /// 姓名
  21.         /// </summary>
  22.         public string Name { get; set; }
  23.       
  24.     }
  25. }
复制代码
3.3分别创建增编削查工具类

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


  1. using DemoSummaryZT.DataModel;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DemoSummaryZT.DatabaseOperation
  8. {
  9.     public  class AddUser :PGSql
  10.     {
  11.         /// <summary>
  12.         /// 新增用户
  13.         /// </summary>
  14.         public static void AddNewUser(UserTable ut)
  15.         {
  16.             try
  17.             {
  18.                 var res = PG_db.Insertable(ut).ExecuteCommand();
  19.                 if (res > 0)
  20.                 {
  21.                     return ;
  22.                 }
  23.                 else
  24.                 {
  25.                     return ;
  26.                 }
  27.             }
  28.             catch (Exception ex)
  29.             {
  30.                 return;
  31.             }
  32.         }
  33.     }
  34.    
  35. }
复制代码


  1. using DemoSummaryZT.DataModel;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DemoSummaryZT.DatabaseOperation
  8. {
  9.     public  class DeleteUser:PGSql
  10.     {
  11.         /// <summary>
  12.         /// 删除用户
  13.         /// </summary>
  14.         public static void Delete(string id)
  15.         {
  16.             try
  17.             {
  18.                 var res = PG_db.Deleteable<UserTable>().In(it => it.ID , id).ExecuteCommand();
  19.               //  var res = PG_db.Deleteable<UserTable>().In(100).ExecuteCommand();
  20.               
  21.                 if (res > 0)
  22.                 {
  23.                     return;
  24.                 }
  25.                 else
  26.                 {
  27.                     return;
  28.                 }
  29.             }
  30.             catch (Exception ex)
  31.             {
  32.                 return;
  33.             }
  34.         }
  35.     }
  36. }
复制代码


  1. using DemoSummaryZT.DataModel;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DemoSummaryZT.DatabaseOperation
  8. {
  9.     public  class ModifyUser:PGSql
  10.     {
  11.         public static  void Modify(UserTable ut)
  12.         {
  13.             var result = PG_db.Updateable(ut).Where(a=>a.ID==ut.ID ).ExecuteCommand();
  14.         }
  15.     }
  16. }
复制代码


  1. using DemoSummaryZT.DataModel;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace DemoSummaryZT.DatabaseOperation
  9. {
  10.     public  class QueryUser:PGSql
  11.     {
  12.         /// <summary>
  13.        /// 查询所有的用户
  14.         /// </summary>
  15.         public static List<UserTable> QueryUserName()
  16.         {
  17.             List<UserTable>list = PG_db.Queryable<UserTable>().ToList();
  18.             return list;
  19.         }
  20.     }
  21. }
复制代码
4.调用操作类访问数据库

创建控制台步调,调用数据库访问工具类并运行
  1. using DemoSummaryZT.DatabaseOperation;
  2. using DemoSummaryZT.DataModel;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. using System.Windows.Forms;
  8. namespace DemoSummaryZT
  9. {
  10.     internal static class Program
  11.     {
  12.         /// <summary>
  13.         /// 应用程序的主入口点。
  14.         /// </summary>
  15.         [STAThread]
  16.         static void Main()
  17.         {
  18.             //初始化数据库连接
  19.             PGSql.InitialPGSql("localhost", "5432", "postgres", "postgres", "postgres", false);
  20.             //查询数据
  21.             Console.WriteLine("----新查询----");
  22.             List<UserTable> userList = QueryUser.QueryUserName();
  23.             foreach (var item in userList)
  24.             {
  25.                 Console.WriteLine("用户名:{0}\t\t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
  26.             }
  27.             //新增数据
  28.             Console.WriteLine("----新增数据----");
  29.             UserTable userTable = new UserTable();
  30.             userTable.ID = "100";
  31.             userTable.Name = "新增用户";
  32.             userTable.Age = 47;
  33.             AddUser.AddNewUser(userTable);
  34.             Console.WriteLine("----新查询----");
  35.             List<UserTable> userList1 = QueryUser.QueryUserName();
  36.             foreach (var item in userList1)
  37.             {
  38.                 Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
  39.             }
  40.             //修改数据
  41.             Console.WriteLine("----修改数据----");
  42.             UserTable userTable1 = new UserTable();
  43.             userTable1.ID = "100";
  44.             userTable1.Name = "新增用户名被修改";
  45.             userTable1.Age = 47;
  46.             ModifyUser.Modify(userTable1);
  47.             Console.WriteLine("----新查询----");
  48.             List<UserTable> userList2 = QueryUser.QueryUserName();
  49.             foreach (var item in userList2)
  50.             {
  51.                 Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
  52.             }
  53.             //删除数据
  54.             Console.WriteLine("----删除数据-新增用户----");
  55.             Console.WriteLine("----删除数据-新增用户----");
  56.             DeleteUser.Delete("100");
  57.             Console.WriteLine("----新查询----");
  58.             List<UserTable> userList3 = QueryUser.QueryUserName();
  59.             foreach (var item in userList3)
  60.             {
  61.                 Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
  62.             }
  63.         }
  64.     }
  65. }
复制代码
检察运行结果



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表