zoukankan      html  css  js  c++  java
  • .netcore下Dapper helper类

    using Dapper;
    using Microsoft.Extensions.Configuration;
    using MySql.Data.MySqlClient;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace MyCommon.Repositories
    {
      
        public interface IDbRepository
        {
            /// <summary>
            /// 查询数据
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            Task<IEnumerable<dynamic>> QueryAsync(string sql, object param = null);
    
            /// <summary>
            /// 查询数据
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            IEnumerable<dynamic> QueryDynamic(string sql, object param = null);
    
            /// <summary>
            /// 查询数据集合
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            IEnumerable<T> Query<T>(string sql, object param = null);
    
            /// <summary>
            /// 查询一条数据
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            T QueryFirstOrDefault<T>(string sql, object param = null);
    
            /// <summary>
            /// 查询数据是否存在
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            bool QueryAny(string sql, object param = null);
    
            /// <summary>
            /// 执行非查询操作
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            int Execute(string sql, object param = null);
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            object ExecuteScalar(string sql, object param = null);
        }
    
        /// <summary>
        /// 
        /// </summary>
        public class DbRepository : IDbRepository
        {
            private readonly IConfiguration _configuration;
    
            /// <summary>
            /// 数据库从库连接字符串
            /// </summary>
            public IDbConnection _dbConnectionSlave { get { return new MySqlConnection(_configuration["ConnectionStrings:SlaveConnectionRead"]); } }
    
            /// <summary>
            /// 数据库主库连接字符串
            /// </summary>
            public IDbConnection _dbConnectionMaster { get { return new MySqlConnection(_configuration["ConnectionStrings:MasterConnection"]); } }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="configuration"></param>
            public DbRepository(IConfiguration configuration)
            {
                _configuration = configuration;
            }
    
            /// <summary>
            /// 异步查询数据
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public async Task<IEnumerable<dynamic>> QueryAsync(string sql, object param = null)
            {
                using (_dbConnectionSlave)
                {
                    return await _dbConnectionSlave.QueryAsync(sql, param);
                }
            }
    
            /// <summary>
            /// 查询数据
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public IEnumerable<dynamic> QueryDynamic(string sql, object param = null)
            {
                using (_dbConnectionSlave)
                {
                    return _dbConnectionSlave.Query(sql, param);
                }
            }
    
            /// <summary>
            /// 查询数据集合
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public IEnumerable<T> Query<T>(string sql, object param = null)
            {
                using (_dbConnectionSlave)
                {
                    return _dbConnectionSlave.Query<T>(sql, param);
                }
            }
    
            /// <summary>
            /// 查询一条数据
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public T QueryFirstOrDefault<T>(string sql, object param = null)
            {
                using (_dbConnectionSlave)
                {
                    return _dbConnectionSlave.QueryFirstOrDefault<T>(sql, param);
                }
            }
    
            /// <summary>
            /// 查询数据是否存在
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public bool QueryAny(string sql, object param = null)
            {
                using (_dbConnectionSlave)
                {
                    return _dbConnectionSlave.ExecuteScalar(sql, param) != null;
                }
            }
    
            /// <summary>
            /// 执行非查询操作
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public int Execute(string sql, object param = null)
            {
                using (_dbConnectionMaster)
                {
                    return _dbConnectionMaster.Execute(sql, param);
                }
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public object ExecuteScalar(string sql, object param = null)
            {
                using (_dbConnectionSlave)
                {
                    return _dbConnectionSlave.ExecuteScalar(sql, param);
                }
            }
        }
    }
  • 相关阅读:
    Android—应用程序开机自启
    Android—简单的仿QQ聊天界面
    Android—关于自定义对话框的工具类
    Android—基于GifView显示gif动态图片
    Android—ListView条目背景为图片时,条目间距问题解决
    Android—自定义开关按钮实现
    FileProvider的使用
    Android 7.0新特性
    Android SDK自带调试优化工具
    Android监视器概述
  • 原文地址:https://www.cnblogs.com/personblog/p/14506165.html
Copyright © 2011-2022 走看看