• .NET技术-2.0. 操作数据库-Dapper


    .NET技术-2.0. 操作数据库-Dapper

    项目参见:

    1. 为什么选择Dapper

    1) 性能优越:

        其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco serialization的过程中所表现的性能,我们发现dapper是第二名,

    当然第一名谁也无法超越,越底层的当然久越快,同时也就越麻烦。就好像谁能超过“01代码”呢???

    2) 支持多数据库

          支持多数据库的本质是因为Dapper是对IDBConnection接口进行了方法扩展,比如你看到的SqlMapper.cs,一旦你这样做了,我们也知道,

    SqlConnection,MysqlConnection,OracleConnection都是继承于DBConnection,而DBConnection又是实现了IDBConnection的接口,对吧。。。

     

    2. 安装 Dapper

    Install-Package Dapper

      

    3. 无事务的操作 

                IDbConnection connection = DB.Database.GetDbConnection();
    
                //查询
                var queryRes = connection.Query<TblOrder>("select * from tbl_order where amount=@amount", new { amount = "10" }).ToList();
    
    
    
                //新增
                List<Models.TblOrder> list = new List<TblOrder>() {new TblOrder() {  Amount = 10, Uptime= DateTime.Now, Order_Code = "119", User_Id = 2  ,Text="aaaa"},
                                                                   new TblOrder() {  Amount = 10, Uptime= DateTime.Now, Order_Code = "118", User_Id = 2  ,Text="bbbbb"},
                                                                   new TblOrder() {  Amount = 10, Uptime= DateTime.Now, Order_Code = "117", User_Id = 2  ,Text="ccccc"}};
    
                string str = "INSERT INTO tbl_order (order_code,user_id,amount,uptime,text) VALUES(@order_code,@user_id,@amount,@uptime,@text)";
    
                connection.Execute(str, list);
    
    
                //修改
                list = connection.Query<TblOrder>("select * from tbl_order where order_code=@order_code", new { order_code = "117" }).ToList();
    
                str = "UPDATE tbl_order SET Text='abcabc' where order_code=@order_code";
    
                connection.Execute(str, list);
    
    
                //删除
                list = connection.Query<TblOrder>("select * from tbl_order order by id").ToList();
    
                connection.Execute("delete from tbl_order where id =@id", list.Take(2).ToList());

     

    4. 带事务的操作

         using (IDbConnection connection = DB.Database.GetDbConnection())
                {
                    connection.Open();
    
                    IDbTransaction transaction = connection.BeginTransaction();
                    try
                    {
                        //修改
                        var list = connection.Query<TblOrder>("select * from tbl_order where order_code=@order_code", new { order_code = "119" }).ToList();
    
                        string str = "UPDATE tbl_order SET Text='开心开心' where order_code=@order_code";
    
                        connection.Execute(str, list,transaction);
    
    
                        //删除
                        list = connection.Query<TblOrder>("select * from tbl_order order by id").ToList();
    
                        connection.Execute("delete from tbl_order where id =@id", list.Take(2).ToList(), transaction);
    
    
                        transaction.Commit();
    
                    }
                    catch (Exception exception)
                    {
                        transaction.Rollback();
                    }
    
                }

      

    引用:https://www.cnblogs.com/huangxincheng/p/5828470.html

  • 相关阅读:
    Java File类应用:递归遍历文件夹和递归删除文件
    综合应用题:多线程复制文件(知识点:多线程、随机读写流)
    Java IO流之随机读写流RandomAccessFile
    Java之枚举----小试牛刀练习
    Java之枚举
    PHP笔试题及答案
    静态方法何时使用
    你怎么理解并使用静态方法和实例化方法的?
    99%的人理解错 HTTP 中 GET 与 POST 的区别
    描述一下大流量高并发量网站的解决方案
  • 原文地址:https://www.cnblogs.com/1285026182YUAN/p/10791365.html
Copyright © 2020-2023  润新知