CYQ.Data 支持 DaMeng 达梦数据库

DaMeng 达梦数据库介绍:

达梦数据库(DMDB)是中国自主研发的关系型数据库管理系统,由达梦科技股份有限公司开发。

达梦数据库提供了企业级的数据库解决方案,广泛应用于金融、电信、政府、制造等行业领域。

达梦数据库具有以下特点和优势:

  1. 高性能:具备高性能的并发处理能力,能够支持大容量和高并发的数据访问需求。
  2. 高可靠性:采用了多种数据保护机制,包括事务管理、数据备份恢复等,保障数据安全和稳定性。
  3. 高可扩展性:支持集群部署和分布式架构,能够灵活扩展以满足不同规模的数据存储需求。
  4. 兼容性强:兼容SQL标准,支持PL/SQL存储过程和触发器,同时也提供了丰富的工具和接口。
  5. 自主创新:在安全、性能、高可用性等方面不断进行技术创新和研发,满足用户不断变化的需求。

总体来说,达梦数据库作为国产数据库管理系统,在国内市场具有一定的地位和影响力,受到一些企业用户的青睐和选择。

CYQ.Data 框架简介:

好几年没写 CYQ.Data 框架的文章了,一直都在低调更新版本和源码,这里就简单引用一下 GTP4 的介绍:

CYQ.Data 是一个高性能且功能强大的ORM(对象关系映射)框架,支持包括.NET Core在内的各种.NET版本。

它设计用于与多种数据库如MSSQL、MySQL、Oracle、Sybase、PostgreSQL、DB2、FireBird、SQLite、DaMeng、KingBaseES等,以及格式如Txt、Xml、Access、Excel和FoxPro等工作。

该框架旨在通过提供写日志、操作JSON和分布式缓存等功能,简化数据层操作,无需额外的库如Log4net.dll、newtonjson.dll或Memcached.ClientLibrary.dll。

该框架自豪于其低调但持续15年的更新,强调其长期可靠性和对开发人员寻找稳定且多功能ORM解决方案的支持。

前言:

去年有群友问我,CYQ.Data 支不支国产数据库,那时候,没支持,只是给了些提示,让其自行通过开源代码支持了。

后来问的人多了,就开始支持了。

CYQ.Data 从去年年底开始支持国产数据库,下面就开始介绍相关内容。

1、开源地址:

https://github.com/cyq1162/cyqdata

2、 Nuget 引用

可以通过 nuget 管理器,直接搜 cyq.data,找到对应的 DaMeng 版本,引入即可。

之前仅是发布了 cyq.data 原始版本,没有提供对应集成驱动的单独版本,今年刚添加的,一添加就十来个,多了不少工作量。

cyq.data 原始版本和 cyq.data.dameng 版本的区别:

复制代码
cyq.data 原始版本:

  不包含其它数据库驱动,需要自行引用对应数据的驱动:比如使用mysql数据库时,需要再引用 mysql.data.dll 驱动。如果引用 cyq.data.mysql,则里面包含了 mysql.data.dll 驱动。

cyq.data.dameng 版本:

  同样,里面集成了对应的数据库驱动,不用再单独引用。

3、支持的版本:

从下图可以看如,一如即往,从.net 2.0 一路支持到 .net 8 及以上。

4、数据库链接语句:

随便 CYQ.Data 支持的数据库越多,有些数据库的语句都一样,无法再根据关键字信息来识别,于是在语句上支持了provider:

链接语句示例:

复制代码
provider=dameng;user id=SYSDBA;password=123456789;data source=127.0.0.1;port number=3050;schema=test;

链接语句配置:

复制代码
{
  "ConnectionStrings": {
    "Conn": "provider=dameng;user id=SYSDBA;password=123456789;data source=127.0.0.1;port number=3050;schema=test;"

  }
}

5、使用示例:

框架默认会引用配置中 Conn 的链接,所以在代码中无需指定。

1、无实体:

使用 MAction 操作表、视图,带分页:

复制代码
using (MAction action = new MAction("表名、视图名、sql查询语句"))
{
    MDataTable dt = action.Select(1, 10, "id>10");
}

使用 MProc 操作原始sql语句或存储过程:

复制代码
using (MProc proc=new MProc("sql语句、存储过程名"))
{
    MDataTable dt = proc.ExeMDataTable();
}

2、有实体:

A、纯实体

复制代码
public class Users
{
    public int ID { get; set; }
    public string Name { get; set; }
}

使用:

List<Users> users=DBFast.Select<Users>(1,10,"id>10");

B、实体继承自 CYQ.Data.Orm

复制代码
public class Users:CYQ.Data.Orm.SimpleOrmBase<Users>
{
    public Users()
    {
        base.SetInit(this, "表名");
    }
    public int ID { get; set; }
    public string Name { get; set; }
}

使用:

using(Users user = new Users())
{
    List<Users> users = user.Select(1, 10, "id>10");
}

以上仅展示查询功能,CYQ.Data 的操作,对十多种数据库,操作都是一致的。

如果还没有学过,可以看 CYQ.Data 相关教程。

1、V4 系列:https://www.cnblogs.com/cyq1162/category/216965.html

2、V5 系列:https://www.cnblogs.com/cyq1162/category/852300.html

6、DaMeng 数据库的基础说明:

在安装或使用 DaMeng 达梦数据库时,可以通过安装后的DM管理工具,来管理数据库

启动,输入账号进入界面后:

可以看到,默认都是大写标识,语句的关键字,是通过双引号包括起来。

可以看到,达梦和常规的数据库比较不一样,你可以这样理解它:

1、单数据库:

一个实例只有一个数据库,一个进程或服务,只管理一个数据库。

【对标以往其它数据库,都是一个实例对应多个数据库。】

因此,打开管理工具时,就没能再看到新建数据库这种常规操作,初入时,会有点MengBiBi。

2、多模式:

一对一的关系,让实例即数据库,可省掉了数据库这个中间概念。

同时支持多种模式,通过新建模式,区分库的概念,可理解为新建数据库。

【对标有些数据库:支持多数据库和多模式,所以多模式又不完全是多数据库的替代概念。】

基于它这种实例即数据库的模式,因此数据库链接中,不再需要指定数据库名称,但要指定模式名称:

重新看一下这个示例的数据库链接语句:

复制代码
provider=dameng;user id=SYSDBA;password=123456789;data source=127.0.0.1;port number=3050;schema=test;

3、创建多个数据库,需要创建新的实例:

通过DB数据库配置助手,可以创建新的实例:

在创建实例过程中,还是可以看到数据库名称和实例名称可以命名编写的:

默认字符串查询比较是区分大小写的,如果不想区分,可以取消这个选项:

做为一篇介绍框架支持数据库的文章,就不过多的介绍介绍数据库本身了,有用到的,可以上官方了解更多。

总结:

CYQ.Data 是一个用于操作数据库的框架,可以方便地连接和管理各种类型的数据库。在操作达梦数据库时,使用 CYQ.Data 框架可以提供以下功能和优势:

  1. 连接数据库:CYQ.Data 可以轻松地建立与达梦数据库的连接,通过简单的配置即可实现连接功能,节省了开发人员的时间和精力。

  2. 执行 SQL 查询:使用 CYQ.Data 可以方便地执行各种 SQL 查询操作,包括查询数据、更新数据、插入数据等,同时还支持事务处理,确保数据操作的准确性和完整性。

  3. 参数化查询:CYQ.Data 支持参数化查询,可以有效防止 SQL 注入攻击,提高数据库操作的安全性。

  4. 数据库事务:通过 CYQ.Data 框架可以轻松管理数据库事务,确保多个操作的原子性,避免数据不一致的情况发生。

总的来说,使用 CYQ.Data 框架操作达梦数据库可以简化开发流程,提高开发效率,同时也增强了系统的稳定性和安全性。

相关推荐
冥净5 天前
新版达梦数据库查看数据库版本信息id_code无法直接显示版本号
数据库·达梦数据库
BillKu10 天前
达梦变量赋值
数据库·sql·达梦数据库·dm8
guochanof12 天前
达梦数据库使用笔记,备份还原,迁移
数据库·达梦·达梦数据库·达梦迁移·达梦备份
怎么追摩羯座13 天前
在银河麒麟系统中Qt连接达梦数据库
qt·达梦数据库·odbc
又是重名了16 天前
达梦数据库 无法自动获取数据库类型,请通过dialect参数指定!
达梦数据库·pagehelper升级
lu9up1 个月前
DM8数据库用户和表空间管理
达梦数据库·dm8
BigQiu662 个月前
达梦数据库运维相关查询命令
运维·数据库·oracle·达梦数据库
学习IT不秃头3 个月前
dsc集群添加磁盘空间
数据库·达梦数据库
保定公民4 个月前
使用达梦DMHS平滑迁移Oracle数据到DM8
数据库·达梦数据库·数据同步·dm·dmhs
菜鸟小码4 个月前
DM达梦数据库转换、条件函数整理
数据库·达梦数据库·dm