当前位置: 首页 > news >正文

freesql简单使用操作mysql数据库

参考:freesql中文官网指南 | FreeSql 官方文档

这两天准备做一个测试程序,往一个系统的数据表插入一批模拟设备数据,然后还要模拟设备终端发送数据包,看看系统的承压能力。

因为系统使用的第三方框架中用到了freesql, 我就想在测试程序中从0开始实验使用freesql来操作数据库。

一、创建wpf工程或者winform工程并创建数据表实体

我创建的是wpf工程,运行的目标框架选择的NET6 

数据表实体依据自己需要操作的业务表字段来创建。

二、引入freesql包FreeSql.Provider.MySqlConnector  

为什么要用FreeSql.Provider.MySqlConnector ,而不是 FreeSql.Provider.MySql,官网介绍说MySqlConnector比mysql更优。

三、配置连接串

在项目的App.config文件中配置connectionStrings连接串。

Data Source=服务器ip;Port=3306;Database=jqtahmdb;uid=root;pwd=mima;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true;SslMode=None;Pooling=true;

 四、创建数据库操作类 FreeSqlDb和数据连接操作方法

1、在类中创建一个数据连接方法,返回数据连接对象。

public static IFreeSql ConnectSQL() //连接数据库{var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Mysql"].ToString();//实例化连接对象var fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(DataType.MySql, connectionString).UseAutoSyncStructure(false).Build();if (fsql != null){return fsql; //连接成功返回true}return fsql;}

2、创建数据表操作方法

下面是查询数据和插入数据的方法示例。

public static  List<Enity.TahmCJ_desc> GetDescList(Enity.TahmCJ_desc desc){List<Enity.TahmCJ_desc> mylist=new List<Enity.TahmCJ_desc>();var fsql = ConnectSQL();mylist = fsql.Select<Enity.TahmCJ_desc>().WhereIf(!string.IsNullOrWhiteSpace(desc.TenantId), e => e.TenantId == desc.TenantId).WhereIf(!string.IsNullOrWhiteSpace(desc.channelno), e => e.channelno == desc.channelno).ToList();return mylist;}public static int InsertDesc(Enity.TahmCJ_desc desc){if (desc.Id == null){desc.Id = Guid.NewGuid();}desc.CreationTime= DateTime.Now;desc.CreatorId = desc.TenantId;desc.LastModificationTime= DateTime.Now;desc.LastModifierId= desc.TenantId;desc.IsDeleted = 0;var fsql = ConnectSQL();var myEF = fsql.Insert<Enity.TahmCJ_desc>(desc).ExecuteAffrows();return myEF;}

 

五、运行效果

如下图所示:数据表中原有一条符合条件的数据,测试程序总计插入了3000条数据。

http://www.lryc.cn/news/408314.html

相关文章:

  • 使用Java和Spring Retry实现重试机制
  • Linux Vim教程(十):自定义配置与插件管理
  • 代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
  • Verilog语言和C语言的本质区别是什么?
  • Delphi5实现鱼C屏幕保护程序
  • 【计算机毕业设计】844学籍管理系统
  • Java之开发 系统设计 分布式 高性能 高可用
  • java连接redis和基础操作命令
  • 土耳其云手机提升TikTok电商效率
  • 《Utilizing Ensemble Learning for Detecting Multi-Modal Fake News》
  • Oracle集群RAC磁盘管理命令asmcmd的使用
  • vscode插件开发笔记——大模型应用之AI编程助手
  • @JSONField(format = “yyyyMMddHH“)的作用和使用
  • 计算机网络 6.1Internet概念
  • 编写SpringBoot的自定义starter包
  • 【LeetCode:3106. 满足距离约束且字典序最小的字符串 + 贪心】
  • 25 Python常用函数——reduce()
  • oracle登录报“ORA-27101: shared memory realm does not exist”
  • 界面控件Telerik UI for WPF 2024 Q2亮点 - 全新的AIPrompt组件
  • IT服务运营过程中的资源要素管理(至简)
  • wodpress设置固定链接的方式和好处【SEO优化】
  • 【C#】 CancellationTokenSource 与Thread的启动、取消的区别?
  • 基于 HTML+ECharts 实现智慧运维数据可视化大屏(含源码)
  • AIGC(Artificial Intelligence Generated Content)
  • 02 MySQL数据库管理
  • C++编程: 使用 Nanomsg 进行 PUB-SUB 模式基准测试
  • 【Unity2D 2022:Data】读取csv格式文件的数据
  • 美团测开面经整理大汇总!!
  • 微信公众号获取用户openid(PHP版,snsapi_base模式)
  • DuckDB核心模块揭秘 | 第1期 | 向量化执行引擎之Pipeline