zoukankan      html  css  js  c++  java
  • .NETCore 访问国产达梦数据库

    前言

    武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发、销售与服务,同时可为用户提供大数据平台架构咨询、数据技术方案规划、产品部署与实施等服务。多年来,达梦公司始终坚持原始创新、独立研发,目前已掌握数据管理与数据分析领域的核心前沿技术,拥有全部源代码,具有完全自主知识产权。

    随着华为、中兴事务,国产数据库市场相信是未来是趋势走向,纵观 .net core 整个圈子对国产达梦数据库的支持几乎为 0,今天我们使用 FreeSql ORM 来体验国产达梦数据库。

    整体来讲,达梦对 Oracle 语法有着 90% 的兼容性,但还有一些细节需要注意,FreeSql 对此做了优化进行了完美支持。

    1、安装环境

    数据库服务器:DM8

    下载地址:http://www.dameng.com/down.aspx?TypeId=11&FId=t14:11:14

    .NET版本:.net core 3.1

    下载地址:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install

    开发机器 :windows 10

    ODBC驱动:

    由于达梦数据库目前只能使用 ODBC 驱动访问数据库,如果成功安装了 DM8,然后我们查看系统 ODBC,正常的话会显示如下:

    2、创建项目

    我们以 console 类型项目试验 插入、删除、更新、查询 等功能,创建控制台项目,使用命令:

    dotnet new console

    dotnet add package FreeSql.Provider.Odbc

    dotnet add package FreeSql.Repository

    3、创建实体模型

    using System;
    using FreeSql.DataAnnotations;
    
    public class User
    {
        [Column(IsIdentity = true)]
        public long Id { get; set; }
    
        public string UserName { get; set; }
    
        public string PassWord { get; set; }
    
        public DateTime CreateTime { get; set; }
    }
    

    4、初始化 ORM

    static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
        .UseConnectionString(FreeSql.DataType.OdbcDameng, 
        "Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;UID=USER1;PWD=123456789")
        .UseMonitorCommand(cmd => Trace.WriteLine($"线程:{cmd.CommandText}
    "))
        .UseAutoSyncStructure(true) //自动创建、迁移实体表结构
        .UseSyncStructureToUpper(true)
        .Build();
    

    5、插入数据

    var repo = fsql.GetRepository<User>();
    
    var user = new User { UserName = "dm1", PassWord = "123" };
    repo.Insert(user);
    

    var users = new []
    {
        new User { UserName = "dm2", PassWord = "1234" },
        new User { UserName = "dm3", PassWord = "12345" },
        new User { UserName = "dm4", PassWord = "123456" }
    };
    repo.Insert(users);
    //批量插入
    

    6、更新数据

    user.PassWord = "123123";
    repo.Update(user);
    

    7、查询数据

    var one = fsql.Select<User>(1).First(); //查询一条数据
    
    var list = fsql.Select<User>().Where(a => a.UserName.StartsWith("dm")).ToList();
    

    8、删除数据

    fsql.Delete<User>(1).ExecuteAffrows();
    
    fsql.Delete<User>().Where(a => a.UserName.StartsWith("dm")).ExecuteAffrows();
    

    结语

    这篇文章简单介绍了在 .net core 3.1 环境中使用 FreeSql 对国产达梦数据库的访问,目前 FreeSql 还支持 .net framework 4.0 和 xamarin 平台上使用。

    国产数据库未来是发展趋势,拥有自主权不受他人限制,我在好几个群里看到有人说公司正准备全面使用国产系统+国产数据库。

    除了 增删查改,FreeSql 还支持很多功能,就不一一演示,一篇文章介绍不完。

    FreeSql 是 .NETCore/.NetFramework/Xamarin 平台下的 ORM 开源项目,支持 SqlServer/MySql/PostgreSQL/Oracle/Sqlite ,还有达梦数据库,未来还会接入更多的国产数据库支持。

    源码地址:https://github.com/2881099/FreeSql

    谢谢支持!

  • 相关阅读:
    搜索回车跳转页面
    登录验证码
    【排序算法】排序算法之插入排序
    PAT 乙级 1044 火星数字 (20 分)
    PAT 甲级 1035 Password (20 分)
    PAT 甲级 1041 Be Unique (20 分)
    PAT 甲级 1054 The Dominant Color (20 分)
    PAT 甲级 1027 Colors in Mars (20 分)
    PAT 甲级 1083 List Grades (25 分)
    PAT 甲级 1005 Spell It Right (20 分)
  • 原文地址:https://www.cnblogs.com/kellynic/p/12034995.html
Copyright © 2011-2022 走看看