• 国产达梦数据库及在.Net 下的增删改查 .NET .ORM


    一,简介

    偶然看到了国产数据库——达梦数据库。顿时起了兴趣,捣鼓了一番。

    下面这段简介摘自百度百科

    达梦数据库是武汉华工达梦数据库有限公司推出的具有完全自主知识产权的高性能数据库产品。它采用“三权分立”的安全管理机制,安全级别达到B1级,并在大数据量存储管理、并发控制、数据查询优化处理、事务处理、备份与恢复和支持SMP系统等诸多方面都有突破性进展和提高。更多介绍:http://baike.baidu.com/view/581717.htm

    达梦数据库有免费版和收费版(感觉国人就是有点急功近利)。

    免费版下载地址:https://www.dameng.com/

    有Windouws版和Linux版。

    二,安装

    我这里选择Windows版下载,当前版本6.2,UI还是做得很漂亮的。 

    安装过程很简单,一路“下一步”就行了:

    2.1) 选择语言版本

     

    2.2) 选择验证Key文件,免费版的下载包里提供了验证文件。 

     

    2.3)设置初始化参数 

     

     2.4)修改数据库口令(密码),当然也可以无视它。默认密码是: SYSDBA

     

    三,使用

    3.1) 打开管 “理工具Manager”登陆 

     

    输入安装时设置的口令,如果安装时没有修改口令,则输入初试默认口令“SYSDBA” 

    3.2) 登陆进去后看到系统默认有两个数据库“SYSTEM”、“BOOKSHOP”。这里我自己新建了一个叫“Cnblogs”的数据库。新建很简单,和操作SQLServer差不多。 

     

     3.3) 点开“cnblogs”节点,会发现,它不像SQLServer那样,下面直接是“表”、“视图”等。

    它下面是“模式”,一个数据库可以有多个模式,模式下面才会有“表”、“视图”等等。

     

     模式用来代表特定数据库中的一个对象集,在概念上可将其看作是包含表、视图、索引和权限定义的对象集合。一个模式只作用于一个数据库,不同的数据库可以有同名模式。

     我在模式“SYSDBA”下面建了个“Users”表。

    3.4) 达梦SQL  

    因为达梦数据库有一个“模式”的概念,因此它的查询语句和SQLServer 也有所不同,要在“表”前加上“模式”。如:

     

    select  *  from  SYSDBA.Users

     当然你也可以不加,直接像在SQLServer 里那样,写成 

       select * from  Users 

    这时它会默认使用SYSDBA模式。

    三、ORM 操作达梦数据库

    .net framework 安装 sqlsugar

    .net 5&.net core  安装sqlsugarcore

    nuget只需要引用一个dll文件,开箱就用简单方便

    1278533-20171125175246750-2063556376.png

    四、连接字符串

     更接近Oracle,更偏向自主研发,对开发人员友好度不如金仓 

     至于其它国产数据库基本上都和PgSql 99.9%一样,建议你们还是用人大金仓比较省心

     连接字符串:

     老版本 :PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA

     新版本: Server=localhost; User Id=SYSDBA; PWD=SYSDBA;DATABASE=新DB

    五、CURD

    创建数据库对象

     //创建数据库对象 SqlSugarClient   
     SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
     {
                ConnectionString = "Server=.xxxxx",//连接符字串
                DbType = DbType.Dm, //设置为达梦
                IsAutoCloseConnection = true //不设成true要手动close
     });

    查询

    db.Queryable<Student>().ToList()//查询所有
    db.Queryable<Student>().Where(it=>it.Id==1).ToList()//根据条件查询

    //分页

      int pageIndex = 1; // pageindex是从1开始的不是从零开始的
      int pageSize = 20;
      int totalCount=0;
      //单表分页
      var page = db.Queryable<Student>().ToPageList(pageIndex, pageSize, ref totalCount);

    插入

    //返回插入行数
    db.Insertable(insertObj).ExecuteCommand(); //都是参数化实现
     
    //插入返回自增列
    db.Insertable(insertObj).ExecuteReturnIdentity();
     
    //返回雪花ID 看文档3.1具体用法(在最底部)
    long id= db.Insertable(实体).ExecuteReturnSnowflakeId();

    删除

    //单个实体
    db.Deleteable<Student>().Where(new Student() { Id = 1 }).ExecuteCommand();
     
    //List<实体>
    List<Student> list=new List<Student>(){
      new Student() { Id = 1 }
    };
    db.Deleteable<Student>(list).ExecuteCommand(); //批量删除

    更新

    //根据主键更新单条 参数 Class
    var result= db.Updateable(updateObj).ExecuteCommand();
     
     
    //批量更新参数 List<Class>
    var result= db.Updateable(updateObjs).ExecuteCommand();

    源码:

    https://github.com/donet5/SqlSugar

  • 相关阅读:
    flutter添加启动图及设置启动时间
    flutter中通过循环渲染组件
    flutter学习资料汇总
    flutter中显现登录页面成功后跳转的方法
    flutter 常用视图组件
    mpvue学习笔记
    按钮放大动画效果
    一位练习时长两年半的内网渗透练习生
    Kali系统中20个超好用黑客渗透工具,你知道几个?
    渗透测试之三内网跳板
  • 原文地址:https://www.cnblogs.com/sunkaixuan/p/15536506.html
Copyright © 2020-2023  润新知