asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行

1.构建运行mysql容器,添加数据库user

参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html

添加user数据库,添加tbusers表

2.创建asp.net core webapi 应用程序

参考Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行,地址 http://www.cnblogs.com/heyangyi/p/9323407.html

<2.1> 修改 appsettings.json  文件,添加 dbconn 数据库链接配置

<2.2> 新增Config类,用来存储配置

    public class Config
    {
        public static string dbconn;
    }

<2.3> 修改Program 类,读取配置

    public class Program
    {
        private static IConfigurationRoot Configuration { get; set; }

        public static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
             .SetBasePath(Directory.GetCurrentDirectory())
             .AddJsonFile("appsettings.json");

            Configuration = builder.Build();
            Config.dbconn = Configuration.GetValue<string>("dbconn");

            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();
    }

<2.4> 新增DataContext类

安装引用:MySql.Data.EntityFrameworkCore

    public class DataContext : DbContext
    {
        public DbSet<tbuser> tbusers { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseMySQL(Config.dbconn);
    }
    public class tbuser
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int id { get; set; }
        public string nickName { get; set; }
        public string email { get; set; }
    }

<2.5> 新增tbuserDataHandle类

    public class tbuserDataHandle : DataContext
    {
        public static int adduser(tbuser user)
        {
            try
            {
                using (var context = new DataContext())
                {
                    context.Database.EnsureCreated();
                    context.Add(user);

                    context.SaveChanges();
                }
                return 200;
            }
            catch (Exception ex)
            {
                return 300;
            }
        }

        public static List<tbuser> Get()
        {
            try
            {
                using (var context = new DataContext())
                {
                    var users = context.tbusers;
                    List<tbuser> items = new List<tbuser>();
                    foreach (var item in users)
                    {
                        items.Add(item);
                    }
                    return items;
                }
            }
            catch (Exception ex)
            {
                return null;
            }
        }

        public static tbuser Get(int id)
        {
            try
            {
                using (var context = new DataContext())
                {
                    var u = context.tbusers.Find(id);
                    return u;
                }
            }
            catch (Exception ex)
            {
                return null;
            }
        }

        public static int Delete(int id)
        {
            try
            {
                using (var context = new DataContext())
                {
                    var u = context.tbusers.Remove(new tbuser() { id = id });
                    context.SaveChanges();
                    return 200;
                }
            }
            catch (Exception ex)
            {
                return 300;
            }
        }

        public static int Put(int id, tbuser user)
        {
            try
            {
                using (var context = new DataContext())
                {
                    var u = context.tbusers.Update(user);
                    context.SaveChanges();
                    return 200;
                }
            }
            catch (Exception ex)
            {
                return 300;
            }
        }
    }

<2.6> 新增userController Api

    [Produces("application/json")]
    [Route("api/user")]
    public class userController : Controller
    {
        // POST api/user
        [HttpPost]
        public int Post(tbuser user)
        {
            return tbuserDataHandle.adduser(user);
        }

        // GET api/user
        [HttpGet]
        public List<tbuser> Get()
        {
            return tbuserDataHandle.Get();
        }

        // GET api/user/5
        [HttpGet("{id}")]
        public tbuser Get(int id)
        {
            return tbuserDataHandle.Get(id);
        }

        // DELETE api/user/5
        [HttpDelete("{id}")]
        public int Delete(int id)
        {
            return tbuserDataHandle.Delete(id);
        }

        // PUT api/user/5
        [HttpPut("{id}")]
        public int Put(int id, tbuser user)
        {
            return tbuserDataHandle.Put(id, user);
        }
    }

3.生成后构建docker镜像并运行

修改 docker-compose.yml ,docker-compose.override.yml  的 version 为:

version: ‘2.0‘

配置 appsettings.json 的 dbconn 为:

"dbconn": "server=192.168.99.100;user id=root;password=123456;persistsecurityinfo=True;port=3307;database=user;SslMode=none"

进入到 E:\web\ilinkcore (这个目录为解决方案的根目录)

docker-compose up

执行成功后创建一个 ilinkcore 的镜像,并且运行了一个 ilinkcore_ilinkcore_1的容器,将本机的32783端口映射到容器的80端口

4.测试访问接口

添加反向代理,修改nginx 配置

server{
    listen       84;
    server_name  localhost;
    location / {
        proxy_pass   http://192.168.99.100:32783;
        index  index.html index.htm;
    }
}

重新运行nginx,使用Postman进行api接口测试

<4.1> 测试接口进行添加user数据

Headers 中添加项:

Content-Type:application/json

<4.2>查看所有用户数据

<4.3> 检索某个用户数据

<4.4> 更新某个用户数据

Headers 中添加项:

Content-Type:application/json

<4.5> 删除单个用户

原文地址:https://www.cnblogs.com/heyangyi/p/9328889.html

时间: 2024-08-26 19:25:55

asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行的相关文章

Java连接MySQL数据库增删改查通用方法

Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类下面写好多方法,要是多个数据库,就要写多个类多个方法,导致代码编写太过于繁琐,所以为了改变这样的繁琐,我将连接数据库的方法进行了一系列的封装,使用户传入一个对象值Object就可以得到想要的. 我在之前写过一篇普通的Java连接MySQL数据库,大家可以看看,以便对比参考之后就知道差距了  数据库--MySQL-->Java篇 接下来我给大家讲讲如何将

mysql数据库增删改查

mysql数据库增删改查增:create database DBname charset gbk; 删:drop database DBname; 改:alter database DBname charset gbk; 改名:如下查:show databases;(show databases like '%name';)查:查看数据库定义:show create database 库名; (改名)百度了下大概就这三种方法: 1. RENAME DATABASE db_name TO new_

Mysql 常用增删改查命令集合教程

创建:create      插入:insert 更新:update  查询:select 删除:delete 修改:alter     销毁:drop 创建一个数据库: create database 数据库名 [其他选项]; create database `samp_db`;创建数据库表: create table 表名称(列声明); create table `students` ( `id` int unsigned not null auto_increment primary ke

MySQL---数据库从入门走上大神系列(二)-用Java对MySQL进行增删改查

上节已经学会对MySQL进行简单的增删改查了,那么,我们如何实现用Java来对数据库操作增删改呢. 本节将用Java演示对MySQL进行增删改查. 简单的来说,分为4个步骤: 1.加载连接器(驱动)   通过Driver类 (最好用类反射来加载,更加灵活) 2.建立与数据库的连接 3.获取语句对象 4.对数据库进行操作(增删改查) 其实第一步现在可以不用写了,高版本的MySQL已经在内部帮我们写好了第一步,但是,为了兼容性更好(兼容低版本的MySQL)我们最好还是写上第一步. 我们先看一下原数据

MySQL之增删改查之

MySQL之增删改查 前言:以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表上,未涉及多表操作. 前提:在进行“增删改查”的操作之前,先建立一个包含数据表student的数据库(具体操作可以见MySQL之最基本命令): 1.“增”——添加数据 1.1 为表中所有字段添加数据 1.1.1 INSERT 语句中指定所有字段名 语法:INSERT INTO 表名(字段名1,字段名2,…)   VALUE

使用MySQL练习增删改查时出现连接错误

使用MySQL练习增删改查时出现连接错误,错误提示如下: 2020-02-19 19:53:51.088 ERROR 16328 --- [reate-249798694] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://localhost:3306/springbootdata?useUnicode=true&useSSL=false&characterE

Asp.net MVC4 使用EF实现数据库的增删改查

EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查 查询 (因为在Model中已经添加EF实体了,所以就可以在Controller中进行有关的数据库操作) <<controller>> //数据上下文对象 OrderDBEntities db = new OrderDBEntities(); public ActionResult Index() { //使用SQO(标准查询运算符),查询

安卓版php服务器的mysql数据库增删改查简单案例

index.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html

jsp-2 简单的servlet连接mysql数据库 增删改查

连接mysql数据库的操作 有增删改查 用的包有 commons-lang3-3.5 mysql-connector-java-5.1.40-bin 但是实际上也就是 数据查询和数据处理两种 所以对数据库的操作DAO只有两种方法 package com.javaweb.dao; import java.lang.reflect.Field;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.Re