using System;
using System.Data.Common;
using System.Linq;
using Dapper;
using MySql.Data.MySqlClient;

  public class DapperBase<T> where T:class,new()
{ /// <summary>
/// 读连接
/// </summary>
/// <returns></returns>
public DbConnection GetWriteConnection()
{
MySqlConnection connection = new MySqlConnection(WebconfigUtils.GetWriteDbconfig());
//NpgsqlConnection connection = new NpgsqlConnection(_sqlconnection);
connection.Open();
return connection;
} /// <summary>
/// 读连接
/// </summary>
/// <returns></returns>
public DbConnection GetReadConnection()
{
try
{
MySqlConnection connection = new MySqlConnection(WebconfigUtils.GetReadDbconfig());
connection.Open();
return connection;
}
catch (Exception)
{
return GetWriteConnection();
}
} public T ExecuteSql(string sql, object obj)
{
using (var connection = GetReadConnection())
{
var model =
connection.Query<T>(sql, obj)
.FirstOrDefault();
connection.Close();
return model;
}
} /// <summary>
/// 事务执行sql
/// </summary>
/// <param name="sql"></param>
/// <param name="obj"></param>
/// <returns></returns>
public int ExecuteTransactionSql(string sql, object obj)
{
using (var connection = GetWriteConnection())
{
var trans = connection.BeginTransaction();
var rows =connection.Execute(sql, obj,trans);
if (rows > )
{
trans.Commit();
}
else
{
trans.Rollback();
}
connection.Close();
return rows;
}
} }

分享一个dapper简单封装的更多相关文章

  1. 1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)

    1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主 ...

  2. 对Raphael画图标的一个jquery简单封装

    公司要做一个项目的demo,要求地图上可以插红旗,所以就用到了Raphael. 因为是个demo,所以地图就用了一张图片,效果如下: 所以为了更好的封装一下这个功能,就写了一个简单的插件:jquery ...

  3. Dapper 简单封装

    using System; using System.Collections.Generic; using System.Text; using Dapper; using System.Data; ...

  4. jquery简单封装

    对Raphael画图标的一个jquery简单封装 公司要做一个项目的demo,要求地图上可以插红旗,所以就用到了Raphael. 因为是个demo,所以地图就用了一张图片,效果如下: 所以为了更好的封 ...

  5. .net core 中简单封装Dapper.Extensions 并使用sqlsuger自动生成实体类

    引言 由公司需要使用dapper  同时支持多数据库 又需要支持实体类 又需要支持sql 还需要支持事务 所以采用了 dapper + dapperExtensions  并配套 生成实体类小工具的方 ...

  6. .Net Excel 导出图表Demo(柱状图,多标签页) .net工具类 分享一个简单的随机分红包的实现方式

    .Net Excel 导出图表Demo(柱状图,多标签页) 1 使用插件名称Epplus,多个Sheet页数据应用,Demo为柱状图(Epplus支持多种图表) 2 Epplus 的安装和引用 新建一 ...

  7. 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行

    [微信支付]分享一个失败的案例 2018-06-04 08:24 by stoneniqiu, 2744 阅读, 29 评论, 收藏, 编辑 这个项目是去年做的,开始客户还在推广,几个月后发现服务器已 ...

  8. 用XHR简单封装一个axios

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 分享一个简单易用的软件定时器模块(MultiTimer)——基于keil+stm32f103zet+hal库(裸机实现)

    公众号上看到一个比较好的一个github项目:https://github.com/0x1abin/MultiTimer 今天看了看,简单的,就移植了- 且看文档的说明, ============== ...

随机推荐

  1. 玩转HTML5移动页面(动效篇)

    原文:http://www.grycheng.com/?p=458 作为一名前端,在拿到设计稿时你有两种选择: 1.快速输出静态页面 2.加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有 ...

  2. 安装mysql-python需要碰到错误:Unable to find vcvarsall.bat 的解决方法

    1.发现从https://pypi.python.org/pypi/MySQL-python/1.2.5#downloads  下载下来的python版本是2.7

  3. LDR伪指令与ADR伪指令的区别

    测试代码 ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr _start: nop 设置代码的起始地址为 0x0c008000, ...

  4. Java基础类型自动装箱(autoboxing)

    Java SE 1.5 版本及之后,开始提供自动装箱功能. 自动装箱,将基础类型“包装”成一种类型: 基本类型 -->  包装器类 如下过程可触发自动装箱过程: Integer count = ...

  5. sharepoint 2013 安装配置PowerView

    安装sharepoint 2013 网络上有很多说明.这里列出两个实例: 1.说得比较详细,并提供了下载连接:http://www.sqlant.com/2012/10/sharepoint-2013 ...

  6. Eclipse右键New菜单项的自定义设置

    大家都知道一般在Eclipse中新建一个项目或者文件都是通过菜单项的File-New来创建,然而有些右键出来的选项可能从来都不会使用到,而有些可能会常用到但是右键中又没有,这个时候就可以自定义New中 ...

  7. WINDOWS WMI--这是一个神奇的应用

    运行:wbemtest.exe

  8. 【BZOJ1901】 Zju2112 Dynamic Rankings(树套树)

    [题意] 给定一个含有n个数的序列a[1],a[2],a[3]--a[n], 程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]--a[j]中第k小的数是多少(1≤k ...

  9. EMMC 简要介绍

    一直想写一篇关于EMMC的文章,但是因为之前弄了很多PPT,所以一直提不起兴趣,索性直接把之前的一个介绍EMMC的PPT贴出来给大家看看,有什么问题可以直接跟帖,我会第一时间进行解答,谢谢

  10. 一个优秀的http实现框架

    package com.ming; import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unir ...