Bouyei.DbFactory 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Bouyei.DbFactory 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Bouyei.DbFactory 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !

软件简介

开发库主要实现功能多个数据库统一接口,CRUD简化快速使用,类似mybatis框架,具体功能如下:

一、

1)、.net 统一数据库接口库,支持 SQL server,DB2,Oracle,MySQL,Postgresql,access,sqlite 等;

2)、支持.net Core 2.0,.net framework,.net standard 2.0+

3)、sql脚本简单Linq条件表达式的CRUD操作

4)、实体映射赋值

5)、单表分页查询

 

二、例子
  1. sql 脚本增删查改生成例子

        //生成简单查询脚本

            ISqlProvider sqlProvider = SqlProvider.CreateProvider();

            //group by 
            string sqlgroupby = sqlProvider.Select<User>().Count().From<User>()
                .Where(x => x.uage == 1).GroupBy<User>().SqlString;

            //function 
            string sqlfun = sqlProvider.Select<User>(new Max("age")).From<User>().Where(x=>x.uage>20).SqlString;

            //order by
            var osql = sqlProvider.Select<User>().From<User>().OrderBy(SortType.Asc, "name").SqlString;

            var dic = new Dictionary<string, object>();
            dic.Add("name", "hellow");
            dic.Add("age", 0);
            dic.Add("score", 1.0);

            //MappedName 测试
            var sqls = sqlProvider.Insert<UserDto>().Values(new UserDto[] { new UserDto() {
                 Pwd="ds",
                  UserName="d"
            } }).SqlString;

            //查询
            var sql = sqlProvider.Select<User>()
                 .From().Where(x => x.id == 1).Top(FactoryType.PostgreSQL, 10).SqlString;

            //修改
            sql = sqlProvider.Update<User>()
                .Set(new User() { uname = "bouyei" })
                .Where<User>(x => x.id == 1 || (x.uname == "b" && x.score == 2)).SqlString;

            //删除
            sql = sqlProvider.Delete()
                .From<User>().Where(x => x.uname == "bouyei").SqlString;

            //插入
            sql = sqlProvider.Insert<User>()
                .Values(new User[] {
                new User() { uname ="hello", uage=12 }
                ,new User() { uname="bouyei",uage=23} }).SqlString;

2、增删查改操作例子

            IAdoProvider dbProvider = AdoProvider.CreateProvider(connectionString, FactoryType.PostgreSQL);
            var ext = dbProvider.Connect(connectionString);

            //原生脚本执行

            var adort = dbProvider.Query(new Parameter()
            {
                CommandText = "select * from public.db_user"
            });
 
            //查询
            var rt= dbProvider.Query<User>(x => x.uage >= 20);

            //单表分页 查询语法
            var takert = dbProvider.PageQuery<User>(x => x.uage == 30,0, 10);

            //更改
            var dic = new Dictionary<string, object>();
            dic.Add("name", "hellow");
            dic.Add("age", 0);
            dic.Add("score", 1.0);
            dbProvider.Update<User>(dic, x => x.id == 1);

            //删除操作

            dbProvider.Delete<User>(x => x.uname == "bouyei");

           //插入
            var users = new User[] {
            new User(){ uname="bouyei", score=100, uage=30 },
            new User(){ uname="八渡", score=10, uage=20 }
            };
            dbProvider.Insert(users);

3、mapper实体,实体对象复制到新对象

             User u = new User() {
                    uname="b",
                      id=1
                };

                User b = new User() {
                     uname="a",
                      id=2
                };

                //u对象定义的变量复制给b对象,条件是只复制name等变量名
                EntityMapper.MapTo(u, b, FilterType.Include, "name");

 

4、实体或服务继承实现基本的增删查改操作无需写sql脚本

  [MappedName("db_user")]
    public class UserDto : BaseMapper<UserDto>
    {
        public string UserName { get; set; }

        [Ignore]
        public string Pwd { get; set; }

    

        public void AddUser(UserDto user)
        {
            base.Insert(user);
        }

        public void DeleteById(string name)
        {
            base.Delete(x => x.UserName == name);
        }

        public void UpdateUser(UserDto dto)
        {
            base.Update(dto, x => x.UserName == "bouyei");
        }

        public List<UserDto> QueryUsers(int page=0,int size=10)
        {
           return base.Select(page, size, x => true);
        }

    }

    public class fc3d:BaseMapper<fc3d>
    {
        public string fname { get; set; }

        public long fcode { get; set; }
    }

    public class BaseMapper<T> : TableMapper<T> where T : class
    {
        public BaseMapper()
        {
            string connstr = "Host=127.0.0.1;Port=5432;User id=postgres;Password=bouyei;Database=postgres;";
            var provider = AdoProvider.CreateProvider(connstr, FactoryType.PostgreSQL);
            Initialized(provider);
        }
    }

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (3)

加载中
该评论暂时无法显示,详情咨询 QQ 群:912889742
该评论暂时无法显示,详情咨询 QQ 群:912889742
和servicestack.ormlite的优势在哪?好的话可能会换
2017/08/29 08:56
回复
举报
更多评论
发表了资讯
02/02 18:54

Bouyei.DbFactory 1.4.5 发布,数据库持久层框架

使用过mybaits或mybatis-plus 的地球人都知道,目的就是为了简化数据库的增删查改等操作,Bouyei.DbFactory是一个.net平台的数据库持久层应用框架,支持常用的数据库接口,如mysql,postgesl,oracle,sqlserver等关系型数据库,增强了单表增删查改查询效率,融合了.net的linq条件语法优势,尽量在.net开发平台飞起来开发。 1、优化实体映射异常类型提示效果。 2、增加单表高效映射效率,减少单表编写sql的重复劳动。 3、增加单表实体...

0
1
发表于大前端专区
2020/04/07 19:56

Bystd.DbFactory 修复升级

Bystd.DbFactory 是Bouyei.DbFactory的一个子项目,基于.Net Standard 2.0+的新项目,整合了.net framework 和.net core两个项目到通用标准的框架方便跨平台迁移和维护。支持postgresql,oracle,mysql,sqlite等多种数据库的统一接口库。 软件更新内容: 1、优化查询实体映射选择列。 2、增加linq表达式查询的top子句条件。 3、修复Guid类型转化sql脚本错误问题。 4、调整枚举类型映射成sql脚本为数值。 5、增加sql语句表达式的o...

0
1
2019/05/01 10:46

Bouyei.DbFactory1.2.3 修复和优化

Bouyei.DbFactory是一个.net数据库通用操作sdk,提供一个统一和简洁的参数调用方式实现多种数据库的操作处理。 1、修复mysql和postgresql 批量入库方法bulkcopy。 2、优化批量方法参数支持泛型类型批量入库,参考CopyParameter<>。 3、升级第三方mysql和postgresql的依赖库引用。

0
2
发表于服务端专区
2018/12/30 17:09

Bouyei.DbFactory 1.2.x 修复和优化

Bouyei.DbFactory 是一款通用多种数据库访问sdk,支持pg,oracle,mysql,db2,sqlserver,sqlite等多种异构数据库访问接口库. 更新内容: 1、修复Query<T>方法映射bug. 2、增加实体Mapped,IgnoreWrite,IgnoreRead,实体映射属性(生成sql使用)。 3、增加Update<T>(),Insert<T>(),Delete<T>(),Query<T>()等Linq表达式参数。 4、部分性能优化。...

0
2
2018/12/21 18:00

Bouyei.DbFactory1.2.x 版本性能优化升级

.net 通用数据库访问接口,支持主流的 db2、oracle、mysql、sqlserver 等。 1、查询映射到实体List<T>性能优化。 2、List<T>和DataTable相互转化映射优化。 3、同步优化到.net core版本。 4、同时升级优化依赖库。 5、部分细节优化调整。 6、去掉忽略大小写参数,直接按大小写区分实体映射。

0
4
发表于大前端专区
2018/05/20 12:33

Bouyei.DbFactory 1.1.6714.22189 发布,修复bug等

Bouyei.DbFactory 1.1.6714.22189 发布,更新内容: 1、调整mysql 批量入库接口方式。 2、调整各个数据库适配器的引用方式。 3、修复entity framework 再web mvc项目下实体映射方式和bug问题。 Install-Package Bouyei.DbFactory -Version 1.1.6714.22189

3
2
发表于大前端专区
2018/04/07 23:09

Bouyei.DbFactory 1.1.6671 版本升级

Bouyei.DbFactory —— C# 多种数据库通用访问接口,支持 EF 和 Ado.net 两种模式。 同时支持 sql server,mysql,oracle,sqlite,db2 等多种数据库类型,支持 .net framework 和 .net core 平台。 同时升级.net framework和.net core内容更新: 1、新增支持postgresql数据库适配. 2、优化升级sqlprovider sql脚本生成模块...

0
0
2018/03/29 10:32

通用数据库接口 Bouyei.DbFactory 支持 .net core

Bouyei.DbFactory —— C# 多种数据库通用访问接口,支持 EF 和 Ado.net 两种模式。 同时支持 sql server,mysql,oracle,sqlite,db2 等多种数据库类型,支持 .net framework 和 .net core 平台。 内容更新: 优化接口调用参数,并修复部分问题。 新增方式执行事务参数、ado.net查询实体支持基础数据类型int等映射集合返回结果。 新增根据接口克隆实例生成新对象。 新增支持.NET Core框架的支持,同时支持多种数据库的EF访问和Ado...

0
7
发表了资讯
2017/12/05 21:07

Bouyei.DbFactory 增加数据库表同步

.net 多数据库访问通用接口封装,支持ORM和 ado.net 方式; ado.net支持 SQL server,DB2,Oracle,MySQL,access 等.... ORM支持sql server; 更新内容: 1、优化调整代码结构和可能的事务bug; 2、新增sql server数据库表双向同步模块(详细见IDbSyncProvider接口) tall-Package Bouyei.DbFactory -Version 1.1.6548.37148...

0
6
发表了资讯
2017/10/17 22:07

Bouyei.DbFactory(多种数据库通用sdk)优化

.net 多数据库访问通信接口封装,支持 entity framework 和 ado.net 方式,数据库支持 SQL server,DB2,Oracle,MySQL,access 等.... 更新内容: 1、优化ormProvider接口update、insert的支持是否直接保存数据库. 2、优化adoProvider对象锁机制 3、优化内存代码结构,提升稳定

1
5
发表了资讯
2017/08/28 22:13

.net 多种关系型数据库通用连接池升级

该库支持支持ado.net和ORM 基于entity framework 访问数据库,ado.net支持多种数据库访问,如:sql server,db2,oracle,mysql,access等多种数据库,提供批量入库bulkcopy方法实现,目的是针对大量数据快速写入数据表,其中还包含简单的sql 生成方法(SqlProviderFactory)。 OrmProviderFactory是通过ORM方法数据库的封装方法,AdoProviderFactory是通过ado.net方式访问数据库,ORM提供实体映射Mapper,使用简单,不需要定义属性。...

0
9
发表了资讯
2017/08/24 19:15

.NET 多种数据库访问通用库 DbProviderFactory 更新

该库支持支持ado.net和ORM 基于entity framework 访问数据库,ado.net支持多种数据库访问,如:sql server,db2,oracle,mysql,access等多种数据库,提供批量入库bulkcopy方法实现,目的是针对大量数据快速写入数据表,其中还包含简单的sql 生成方法(SqlProviderFactory)。 OrmProviderFactory是通过ORM方法数据库的封装方法,AdoProviderFactory是通过ado.net方式访问数据库,ORM提供实体映射Mapper,使用简单,不需要定义属性。...

3
8
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/05/28 16:01

C#基础知识回顾:2.使用DbProviderFactory实现多数据库访问

  ADO.Net 2.0中,在System.Data.Common中引入了一系列抽象基类,使得开发人员能够在不依赖具体数据库操作的情况下进行编写数据访问代码,它们分别是DbConnection、DbCommand和DBDataAdapter,同时,.Net Framework也提供这些基类的实现类,用来处理具体的数据库操作,比如 MSSQLserver对应的实现类:System.Data.SqlClient.SqlConnection、System.Data.SqlClient.SqlCommand、System.Data.SqlClient.SqlDataAdapter。 Oracle...

0
0
发表了博客
2018/07/17 14:49

[C#]实现任何数据库类型的DbHelper帮助类

本文章为原创内容,如需转载,请注明作者及出处,谢谢! 一、在System.Data.Common命名空间下,存在这样的一个类: // // 摘要: // 表示一组方法,这些方法用于创建提供程序对数据源类的实现的实例。 public abstract class DbProviderFactory { // // 摘要: // 初始化 System.Data.Common.DbProviderFactory 类的新实例。 protected DbProviderFactory()...

0
0
发表于软件架构专区
2016/07/14 16:14

简单工厂模型到实际应用的进化

工厂模式的理论与实际应用 1.我编写代码的习惯 我在写代码时总是在需要创造对象的时候就毫不思索的使用new,创造一个对象,让这个对象帮我完成索要达到的目的。比如:在访问sql数据库时,很容易写,SqlConnection con=new SqlConnection("数据库连接字符串"),然后呢con.open(),再后来使用这个连接来访问数据库,最后con.Close()。在需要访问数据库时,在使用同样的方式new,open(),Close().频繁的打开数据库连接,使用,再关闭...

0
0
发表了博客
2011/10/20 15:04

使用ORM Profiler分析数据访问性能

Solutions Design公司发布了ORM Profiler[1],这是一款旨在帮助提高数据访问层性能的工具。它会跟踪和记录ADO.NET调用,以便开发者可对他们的数据访问进行分析,进而发现其中的潜在问题。 ORM Profiler可与任何用DbProviderFactory类构建的、用于对象关系映射(ORM)的数据访问层一起使用,而且适用于任何可通过数据访问层使用的数据库,包括SQL Server、MS Access、Oracle、MySql、SQLite、PostgreSQL、以及DB2。它支持.NET Fr...

0
1
发表了博客
2020/10/19 11:05

Oracle DB 优化代码 .NET-Java与Windows融合-立哥开发

/*Copyright 2020 Jacky Zong .All rights reserved*/ using System; using System.Data; using System.Data.Common; using Oracle.ManagedDataAccess.Client; class DataSourceEnumSample { static void Main() { string ProviderName = "Oracle.ManagedDataAccess.Client"; DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName); if (factory.CanCreateDataSourceEnumerator) { DbDataSourceEnumerator...

0
0
发表了博客
2013/04/04 15:06

TianvData免费发布并且开源下载

前言: 从接触ASP.NET开始, 数据库的操作就已经成为了所有网站项目共同的部分, 经历了许多方式, 走了不少弯路, 参考了很多别人的代码(特别喜欢subsonic),也该把自己的发布出来, 给大家参考。 简介: TianvData 是我们公司即将发布的TianvCMS的主要组件之一。 它小型、简单、快速数据库组件, 通过使用原生的DbProviderFactory, 使得跨数据库相当的方便。 使用方式: 下载包里有使用方式的具体内容,这里简单的贴一些代码...

0
0
发表了博客
2019/07/18 17:51

.net core下使用DbProviderFactories.GetFactory("")无法创建工厂的解决方案

  前言:我们有时候会有一种需求,需要连接很多的数据库,如:mysql,sqlserver,oracle等等,需要把这些数据库里的数据抽取出来加工后,返回给客户端使用。   在.net framework中是可以使用:     DbProviderFactories.GetFactory("MySql.Data.MySqlClient");----创建Mysql数据库工厂     DbProviderFactories.GetFactory("System.Data.SqlClient"); ------创建Sqlserver数据库连接工厂   进行数据库连接的,当然还...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
3 评论
48 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部