zoukankan      html  css  js  c++  java
  • asp.net core 使用Mysql和Dapper

    序曲:学习编程最好的方式就是敲代码,没有比这个更好的方法,哪怕你看了上百G的视频,都不如你自己敲几行代码更为有效。还有要记得敲完代码然后写一篇随笔来记录一下你所学所想。

    大家都知道,.netcore是微软一个具有历史意义的产品,因为终于开始跨平台了,

    敲了那么多年的代码,每次都被吐槽不能跨平台,现在终于开启了跨平台的脚步了。

    既然跨平台了,那么我们是不是可以使用mysql了,毕竟mysql的使用率是非常的高,

    各种解决方案和优化方案都非常的多。如果你不知道什么是mysql,那么你自己去百度一下。

    好了,废话太多了,我们开始来讲一讲如何在core上使用mysql。

    第一步,当然是引用对应的包了

    本次主要是引用两个包,分别是

    MySql.Data

    Dapper

     引用成功之后,就开始敲代码

    本讲解使用的是core控制台

    当然首先你得安装mysql到你的电脑上,或者安装到centOs上面

    windows安装mysql,你可以看看这位的方案:https://www.cnblogs.com/xsmile/p/7753984.html

    centOS7安装mysql,你可以看看这个:https://www.cnblogs.com/Jomini/p/10749657.html

    本人的mysql是安装到我的windows上的

    配置你的数据库连接,这个信息最好放在配置文件中,这次是为了演示,我就放在代码中

    //配置你的数据库连接信息
            private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
    server是你的mysql安装到的机器上的ip地址
    userid是mysql登录用户

    pwd是登录密码
    port是mysql的端口,一般情况下,mysql的默认端口就是3306
    database是你的数据库名称
    SslMode是SSL模式,这里为none

    我们在以前写sql的时候,都习惯给自己写一个helper,但是这里不用了,别人都帮你写好了,你拿去直接调用即可
    MySqlHelper包含了丰富的api,各种增删改查,也基本满足你的需求了,这个和以前使用没什么区别
    class Program
        {
            //配置你的数据库连接信息
            private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
            static void Main(string[] args)
            {
                DataSet dataSet= MySqlHelper.ExecuteDataset(ConnString, "select  * from  luckmoney ");
                 
            }
        }

    这个虽好,但是不利于封装到实体对象中,

    所以我们引入了Dapper

    如果学过java的人看到这个,是不是感觉挺眼熟,java中有一个mapper

    本人也学过java,所以有这个感觉。

    Dapper是一款轻量级ORM工具

    为什么选择Dapper

    1. 轻量。只有一个文件(SqlMapper.cs)。
    2. 速度快。Dapper的速度接近与IDataReader,比DataTable好很多
    3. 支持多种数据库,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server
    4. 可以映射一对一,一对多,多对多等多种关系。
    5. 性能高。通过Emit反射IDataReader的序列队列,来快速的得到和产生对象,性能不错。
    当然最重要的是使用起来非常的方便。
    在我们上面代码基础上,引入Dapper后,你会发现变得不一样了
    这里我们先加一个实体
    如下所示:
    MySqlConnection被扩展了更多的方法,这些都是Dapper所带来的
    using MySql.Data.MySqlClient;
    using System;
    using System.Data;
    using Dapper;
    
    namespace MySQL_Demo
    {
        class Program
        {
            //配置你的数据库连接信息
            private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
            static void Main(string[] args)
            {
                MySqlConnection mySqlConnection = new MySqlConnection(ConnString);
                var list = mySqlConnection.Query<luckmoney>("select  * from  luckmoney ", null);
                foreach (var item in list)
                {
                    Console.WriteLine(item.id);
                }
            }
        }
    
        public class luckmoney
        {
            public int id
            {
                get; set;
            }
    
            public decimal money
            {
                get; set;
            }
    
            public string consumer
            {
                get; set;
            }
    
            public string producer
            {
                get; set;
            }
        }
    }

     如果你想用参数,也很简单,如下所示:

    MySqlConnection mySqlConnection = new MySqlConnection(ConnString);
                var list = mySqlConnection.Query<luckmoney>("select  * from  luckmoney  where id=@id  ",new { id=1 });
                foreach (var item in list)
                {
                    Console.WriteLine(item.id);
                }

    在这里我就不讲很复杂的东西,只是简单的引导你们怎么使用mysql和Dapper,希望大家多敲一敲代码,里面还有更多东西等你们探索。

    总结:现在敲代码越来越方便了,以前还要自己去敲各种helper,现在别人都给你封装好了,你自己去使用就可以,可以说什么很方便了

    但是不能因此不去探索这些东西的原理,不去探索,你只是敲代码的机器,探索了,你的代码就代入了你的思想和灵魂,我以前和大家一样

    每天就是各种增删改查,各种copy,几年下来,东西没学到多少,年龄大了,更不好找工作。

    各位别嫌弃我废话太多,毕竟我们程序员是孤独的。

  • 相关阅读:
    如何使用EF?
    在一般处理程序中使用session
    C# base64 加密解密
    C#操作WMI文章汇总
    ASP.NET图片防盗链(使用一般处理程序)
    前台生成验证码
    .正则
    iframe标签的初试
    sqli-labs5-10(全程sqlmap)
    sql注入文件写入和读取
  • 原文地址:https://www.cnblogs.com/dengbo/p/11622900.html
Copyright © 2011-2022 走看看