Mark

你会换掉Postman吗?我正在用HTTP Client...

只谈情不闲聊 提交于 2021-01-14 07:42:47
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star: https://github.com/ZhongFuCheng3y/3y 相信大家都用过POSTMAN吧,后端在开发的时候写完接口总得去自测调用一下,看符不符合自己的预期。 postman 因为我们的接口可能会有很多参数或者我们的参数是json格式的(等等原因),直接用浏览器去请求不太方便,而且使用浏览器去请求也不能复用(没有保存的功能)。 所以我们常常会用一些别的软件(插件),而POSTMAN就是这里边最出名的。 这篇文章不是在介绍POSTMAN,而是我们Java程序员最喜欢的IDEA,它也能做到POSTMAN的功能,而且我觉得更加好用。 小插曲 在前几天换了MacBookPro,自然就需要把在Windows上的hosts配置的东西搬移到MacBookPro上 毕业半年,买了一台MacBook Pro 是我就把Windows上的hosts通过QQ复制到我的gas mark(Mac 上管理hosts的一个软件,我觉得挺好用的) 从Windows复制对应的hosts配置 于是我就很欢快愉悦地就将这些配置复制到gas mark。复制完了以后,我去访问自己的预发环境也是成功了(我这边一般预发环境都要配置hosts才能访问)。 但是等我用POSTMAN和IDEA自带的HTTP Clint去测试我自己接口的时候

Dapper官方教程翻译2:Dapper方法之Execute(转)

老子叫甜甜 提交于 2021-01-13 22:01:42
Dapper官方教程翻译2:Dapper方法之Execute 2018年12月20日 16:28:35 Day_and_Night_2017 阅读数:157 Execute方法描述: Execute是Dapper对数据库操作的一个扩展,可以由IDbConnection对象调用。它可以执行一条命令一或多次,返回类型是受影响的行数。这个方法通常用于执行: Stored Procedure (存储过程) INSERT statement (插入语句) UPDATE statement (更新语句) DELETE statement (删除语句) 该方法可传递的参数: Execute方法参数说明 参数名 参数含义 Sql 可执行的数据库语句 param 命令中的占位参数 transaction 使用的事务 commandTimeout 超时时长 commandType 命令类型 示例:执行存储过程 执行一次存储过程: string sql = "Invoice_Insert"; using ( var connection = My.ConnectionFactory()) { var affectedRows = connection.Execute(sql, new {Kind = InvoiceKind.WebInvoice, Code = "Single_Insert_1"},

Dapper学习(一)之Execute和Query

百般思念 提交于 2021-01-13 21:14:14
Dapper是一个用于.NET的简单的对象映射,并且在速度上有着轻ORM之王的称号。 Dapper扩展IDbConnection,提供有用的扩展方法来查询数据库。 那么Dapper是怎样工作的呢? 总共三步: 创建一个IDbConnection对象 写一个语句来执行CRUD操作 传递语句作为Execute方法的一个参数 因为这篇文章主要是为了学习其中一些方法的使用,所以,这里不再叙述安装等的一些使用,有需要的同学可以参考: https://dapper-tutorial.net/dapper 1.Execute Execute是可以被IDbConnection类型的任何对象调用的扩展方法。它可以执行一个命令一次或者很多次,并且返回受影响的行数。 这个方法可以用于执行: 存储过程(Stored Procedure) 插入语句(INSERT statement) 更新语句(UPDATE statement) 删除语句(DELETE statement) 下面的表格,展示了Execute方法的参数 这里给出一个实现代码的示例,其余部分直接在官网上的示例上面记录学习。 using Dapper; using System; using System.Data.SqlClient; using System.Runtime.Serialization; namespace Dapper

微信支付(微信公众号支付) [记录]

☆樱花仙子☆ 提交于 2021-01-13 19:02:51
后台   先获取code code有效5min      public string GetCodeUrl(string Appid, string redirect_uri)      {    return string.Format( " https://open.weixin.qq.com/connect/oauth2/authorize?appid= {0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect" , Appid, redirect_uri);      }       url 接口(接收code方法地址***/a/b)   通过code获取token       access_token       公众号调用各接口时都需使用access_token   通过token 生成 预支付订单 文档代码: function onBridgeReady(){ WeixinJSBridge.invoke( 'getBrandWCPayRequest' , { "appId":"wx2421b1c4370ec43b", // 公众号名称,由商户传入 "timeStamp":"1395712654", // 时间戳,自1970年以来的秒数 "nonceStr"

Boston Metal筹资5000万美元以实现钢铁生产零碳排放

那年仲夏 提交于 2021-01-13 08:48:33
波士顿--(美国商业资讯)-- Boston Metal 今日宣布,公司在B轮融资中筹集了5000万美元,公司将利用这笔资金加速其熔融氧化物电解(MOE)技术的工业规模部署,从而实现钢铁生产零排放目标。此轮融资由Piva Capital、BHP Ventures以及FMR LLC的附属私人投资公司Devonshire Investors领投。FMR LLC是Fidelity Investments母公司。现有投资者Breakthrough Energy Ventures、Prelude Ventures、OGCI Climate Investments和The Engine亦参与了本轮融资,反映出对于该公司及其近期进步的持续大力支持。 Boston Metal董事长兼首席执行官Tadeu Carneiro表示:“Boston Metal正在推动冶金新时代的到来。钢铁生产一千年以来所依赖的基础方法一直都没有什么变化,推动这类行业的变革需要团队、技术和合作方的罕见结合。借助新一轮融资,Boston Metal已经汇聚了所有这些元素,而且有条件在未来实现高效、模块化、清洁的钢铁生产。” Boston Metal的MOE技术使用电力将金属从原始氧化物转变为高纯度的熔融金属产品,从而有望以一种效率更高、成本更低以及更可持续的方式,来实现从各类铁矿石生产钢铁的二氧化碳零排放。

MySQL连表查询练习题(一)

风格不统一 提交于 2021-01-13 07:18:08
MySQL连表查询练习题(一) 建库 库名:linux50 字符集:utf8 校验规则:utf8_general_ci mysql> create database linux50 charset utf8 collate utf8_genneral_ci; 建表 表一 student(学生表) 字段 数据类型要求 是否为空 注释 sno 最多20位 否 学号(主键) sname 可变长 否 学生姓名 sage 最小整数,非负数 否 学生年龄 ssex 0,1 否 学生性别(1是男,0是女)默认为男) sbirthday 时间类型 默认为空 学生生日 class 可变长 否 学生班级 create table student( sno int not null primary key auto_increment comment '学号', sname varchar(20) not null comment '学生姓名', sage tinyint unsigned not null comment '学生年龄', ssex enum('1','0') default '1' not null comment '学生性别', sbirthday datetime default null comment '入学时间', class varchar(20) not null

转义字符

霸气de小男生 提交于 2021-01-13 03:46:57
一、符号转义 二、 字母转义 三、数字转义 四、特殊字符转义 符号转义: — 制表符Horizontal tab — 换行Line feed — 回车Carriage Return — Space ! — 惊叹号Exclamation mark " — &quot; 双引号Quotation mark # — 数字标志Number sign $ — 美元标志Dollar sign % — 百分号Percent sign & — &amp; Ampersand ‘ — 单引号Apostrophe ( — 小括号左边部分Left parenthesis ) — 小括号右边部分Right parenthesis * — 星号Asterisk + — 加号Plus sign , — 逗号Comma - — 连字号Hyphen . — 句号Period (fullstop) / — 斜杠Solidus (slash) : — 冒号Colon ; — 分号Semicolon < — &lt; 小于号Less than = — 等于符号Equals sign > —&gt; 大于号Greater than ? — 问号Question mark @ — Commercial at [ --- 中括号左边部分Left square bracket \ --- 反斜杠Reverse solidus

垃圾收集器

淺唱寂寞╮ 提交于 2021-01-12 18:18:45
GC概念   如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。   GC(Garbage Collection)的工作任务可以分为两类:内存的动态分配和垃圾回收。在内存执行分配之前,GC会先对内存进行划分区域,在上一篇博客中我们知道Java虚拟机使用了分代收集算法,所以堆区里面会被分为新生代和老年代两个区域,新生代又分为Eden空间、From空间和To空间。 空间划分完成后,GC就可以为新对象分配内存空间。   在JDK版本这么多年发展的途中,垃圾收集器也已经出现了多种版本,基于分代的概念,不同的分代空间中活动着不同的GC。   从不同的角度分析垃圾收集器,可以将GC分为不同的类型。 按照线程数分,可分为串行垃圾回收器和并行垃圾回收器。 按照工作模式分,可分为并发式垃圾回收器和独占式垃圾回收器。 按碎片处理方式分,可分为压缩式垃圾回收器和非压缩式垃圾回收器。 按工作内存分,可分为新生代垃圾回收器和老年代垃圾回收器。 下面简单介绍这几个概念 并发式回收器和独占式回收器   并发式垃圾回收器与应用程序线程交替工作,以尽量减少程序的停顿时间。   独占式回收器(Stop the world)一旦运行,就会停止应用程序中的其他所有线程,直到垃圾回收完全结束。 串行回收器和并行回收器   串行回收器是所有垃圾回收器中最古老的的一种

Django 模板语言 标签

我怕爱的太早我们不能终老 提交于 2021-01-12 04:36:48
前言:django的模板语法基本和flask的jinja2基本一样。下面比较一下两个模板语法的区别。 ------ 深度变量的查找(万能的句点号) 在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . )。 1.模板变量 django :{{ 变量 }} # 因为django只有一个context返回,全部数据都集中在一起 jinja2 :{{ 对象.变量 }} 2.根据列表的下标获取值 django :{{ 列表.0 }} jinja2 :{{ 列表[0] }} 3.根据字典的键获取字典的值 django :{{ 字典.key }} jinja2 :{{ 字典[key] }}或者{{ 字典.key }} 4.for循环时取序号 django : {% for item in 列表 %} {{forloop.counter}} < 1-- 表示当前是第几次循环,从 1开始 --> {{forloop.counter0}} <!-- 表示当前是第几次循环,从 0开始 --> {% endfor %} jinja2 : {% for item in 列表 %} {{loop.index}} < 1-- 表示当前是第几次循环,从 1开始 --> {{loop.index0}} <!-- 表示当前是第几次循环,从 0开始 --> {% endfor %} # for遍历字典 {

taro小程序展示富文本

瘦欲@ 提交于 2021-01-12 03:00:39
在微信小程序下会用到wxParse这个东西来达到html转换wxml的效果, taro小程序官方也给出了示例, 地址 这里封装成自己的组件: import Taro, { Component } from "@tarojs/taro" import { View } from "@tarojs/components" import WxParse from '../../utils/wxParse/wxParse.js' import "../../utils/wxParse/wxParse.scss" export default class ParseComponent extends Component { componentDidMount() {} defaultProps = { mark: "" } render() { if ( this .props.mark) { let domText = this .props.mark WxParse.wxParse( "domText", "html", domText, this .$scope, 5 ); } return ( <View> {process.env.TARO_ENV === "weapp" ? ( <View> <import src='../../utils/wxParse/wxParse