zoukankan      html  css  js  c++  java
  • dapper 批量删除、新增、修改说明

    Dapper是什么?

      Dapper是一款.Net平台简单(Simple)的对象映射库,并且Dapper拥有着“微型ORM之王”的称号。

      就速度而言与手写ADO.NET SqlDateReader相同。

      ORM是Object Relational Mapper的缩写,代表着数据库与编程语言之间的映射。

      简单来说就是使用Entity Framework、NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀,那么Dapper会是不错的选择。

    1、Dapper基本用法

    通过NuGet安装:Dapper包,如果要进行mysql连接还需要安装Mysql.Data包

    2、数据库连接配置

    <connectionStrings> 
      <add name="MysqlServer" connectionString="Database=用数据库名称;Data Source=IP;Port=端口; User Id=用户名;Password=密码;Charset=utf8mb4;TreatTinyAsBoolean=false;" /> //Mysql

      <add name="LinqConnection" connectionString="Data Source=IP;Initial Catalog=数据库名称; User ID=用户名;Password=密码" providerName="System.Data.SqlClient"/> //sql
    </connectionStrings>

    3、dapper 数据库连接方法

    Mysql连接方法:

    public class DapperService 
    {

      public static MySqlConnection MySqlConnection()
      {
         string mysqlConnectionStr = ConfigurationManager.ConnectionStrings["MysqlServer"].ToString();
         var connection = new MySqlConnection(mysqlConnectionStr); connection.Open();
        return connection;
      }
    }

    mssql连接方法:

    public class DapperService { 

      public static SqlConnection MySqlConnection()
      {

        string mysqlConnectionStr =ConfigurationManager.ConnectionStrings["LinqConnection"].ToString();
        var connection = new SqlConnection(mysqlConnectionStr);
        connection.Open();
        return connection;
      }
    }

    4、新增方法(单体、批量)

    单体:

    public ActionResult GetDapper(CarModel carModel)
    {
      try
      {
        using (IDbConnection conn = DapperService.MySqlConnection())
       {
          int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values (@UserTel,@UserName,@UserPwd)", carModel);
        }
        return Json("success");
      }
      catch(Exception e)
      {
       return Json("failed");
      }
    }

    批量:

    public ActionResult GetDapper(List<CarModel> carModel) 
    {
     try
      {
        using (IDbConnection conn = DapperService.MySqlConnection())
        {
          int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values(@UserTel,@UserName,@UserPwd)", carModel);
        }
        return Json("success");
      }
      catch(Exception e)
      {
        return Json("failed");
      }
    }

    5、删除方法(单体、批量)

    单体:

    public static int Delete(CarModel carModel) 
    {   
    using (IDbConnection conn = DapperService.MySqlConnection())   {    return conn.Execute("delete from UserInfo where id=@ID", carModel);   } }

    批量:

    public static int Delete(List<CarModel> carModel) 
    { 
      using (IDbConnection conn = DapperService.MySqlConnection()) 
      { 
        return conn.Execute("delete from UserInfo where id=@ID", carModel); 
      } 
    }

    6、更新方法(单体、批量)

    单体:

    public static int Update(CarModel carModel) 
    { 
      using (IDbConnection conn = DapperService.MySqlConnection()) 
      {
         return conn.Execute("update UserInfo set name=@name where id=@ID", carModel);
       } 
    }

    批量:

    public static int Update(List<CarModel> carModel) 
    { 
      using (IDbConnection conn = DapperService.MySqlConnection())
       { 
        return conn.Execute("update UserInfo set name=@name where id=@ID", carModel); 
      } 
    }

    7、查询

    无参查询

    public static List<CarModel> Query() 
    { 
      using (IDbConnection conn = DapperService.MySqlConnection()) 
      { 
        return conn.Query<CarModel>("select * from UserInfo ").ToList();
      } }

    有参查询

    public static Person Query(CarModel carModel) 
    { 
      using (IDbConnection conn = DapperService.MySqlConnection()) 
      { 
        return conn.Query<CarModel>("select * from UserInfo where id=@ID",carModel).SingleOrDefault(); 
      } 
    }

    8、Dapper的复杂操作

    In操作

    public static List<CarModel> QueryIn() 
    { 
      using (IDbConnection conn = DapperService.MySqlConnection()) 
      { 
        var sql = "select * from UserInfo where id in @ids"; 
         return conn.Query<CarModel>(sql, new { ids = new int[2] { 1, 2 }, }).ToList(); 
      } 
    }
    public static List<CarModel> QueryIn(int[] ids) 
    { 
      using (IDbConnection conn = DapperService.MySqlConnection()) 
      { 
        var sql = "select * from UserInfo where id in @ids";
        return conn.Query<CarModel>(sql, new { ids }).ToList(); 
      } 
    }

    9、多语句操作

    public ActionResult QueryMultiple() 
    { 
      try 
      {  
        using (IDbConnection conn = DapperService.MySqlConnection()) 
        { 
          var sql= "select * from Person; select * from UserInfo"; 
          var multiReader = conn.QueryMultiple(sql); 
          var personList = multiReader.Read<Person>(); 
          var bookList = multiReader.Read<CarModel>(); multiReader.Dispose(); 
        } 
        return Json("success"); 
      } 
      catch(Exception e) 
      { 
        return Json("failed"); 
      } 
    }
  • 相关阅读:
    DEDE更改版权信息
    apache 服务器端口被IIS服务器占用
    解析html与xhtml的神器——HTMLParser与SGMLParser
    正则匹配牛刀小试——一键抓取奇虎360新闻信息
    urllib2模块初体验———豆瓣读书页面下载小爬虫
    urllib模块和urllib2模块的区别
    cookielib和urllib2模块相结合模拟网站登录
    Python核心模块——urllib模块
    《java语言程序设计》初步学习——各种小Demo
    Python核心编程——Chapter15
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/14467715.html
Copyright © 2011-2022 走看看