zoukankan      html  css  js  c++  java
  • .net core Dapper for MySql

    Dapper 语法比较简单,效率也比较快,速度接近IDataReader 甚至读取数据超过了DataTable,建议在实际项目可以结合EntityFramework Core 一起使用。

    一、创建MySql Table 

    CREATE TABLE User (
      Id int(11) NOT NULL AUTO_INCREMENT,
      Name varchar(255) DEFAULT NULL,
      PRIMARY KEY (Id)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;

    二、创建Model

     public class Users
     {
        public int Id { get; set; }
        public string Name { get; set; }
     }

    三、Dapper Helper

     public  class DapperContext
        {    
    //连接字符串
    const string connectionString = "Server=localhost;port=3306;Database=testDB;Uid=root;Pwd=123abc;SslMode=None;"; public static MySqlConnection Connection(){ var mysql=new MySqlConnection(connectionString); mysql.Open(); return mysql; } }

    四、WEBAPI 

     [Route("api/[controller]")]
        public class UserController : Controller
        {
                
    
            /// <summary>
            /// 获取所有用户数据
            /// </summary>
            [HttpGet]
    
            public List<Users> GetUsers(GetUserInput input){
               //分页数据
                List<Users> users = new List<Users>();         
                using(IDbConnection connection=DapperContext.Connection()){
                
                    users = connection.Query<Users>("select * from user limit @PageIndex,@PageSize",new {
                        PageIndex=input.PageIndex*input.PageSize,
                        PageSize=input.PageSize
                    }).ToList();
                }
                return users;
             
            }
    
            /// <summary>
            /// 根据用户ID 查询
            /// </summary>
            [HttpGet("{id}")]
            public Users Get(int id)
            {
                using(IDbConnection connection=DapperContext.Connection()){
    
                    return connection.Query<Users>("select * from user where id=@Id",new {@Id=id}).FirstOrDefault();
                }
            }
    
            /// <summary>
            /// 插入数据
            /// </summary>
            [HttpPost]
            public void Post([FromBody]Users value)
            {
                using(IDbConnection connection=DapperContext.Connection()){
                    connection.Execute("insert into user values(@Id,@Name)", new { value.Id,value.Name });
                }
            }
            
           /// <summary>
           /// 修改数据
           /// </summary>
            [HttpPut("{id}")]
            public void Put(int id, [FromBody]string value)      
            {
                using(IDbConnection connection=DapperContext.Connection()){
    
                    connection.Execute("update user set name=@Name where id=@Id", new { Id = id, Name = value });
                }
            }
    
            /// <summary>
            /// 删除数据
            /// </summary>
            [HttpDelete("{id}")]
            public void Delete(int id)
            {
                using(IDbConnection connection=DapperContext.Connection()){
                    connection.Execute("delete from user where id=@Id", new { Id = id });
                }
            }
        }

    只是简单的使用Dapper,如需更多了解建议查看官方文档。

  • 相关阅读:
    React Native的生命周期解析
    React Native中组件的props和state
    centos7修改主机名
    nodejs搭建web项目
    centos7默认防火墙firewalld
    初窥 MongoDB
    阿里云Ubuntu安装图形界面与中文语言包
    安装nginx
    PHP静态化技术
    PHP工厂模式
  • 原文地址:https://www.cnblogs.com/w2011/p/9515049.html
Copyright © 2011-2022 走看看