1.1 snake_case 的起源:C 语言与 Unix 哲学 snake_case(如 user_id)的流行可追溯到 70 年代的 C 语言和 Unix。...这种习惯深深植根于 SQL 数据库标准中,至今 PostgreSQL 和 MySQL 的默认列名风格依然是下划线,这也为后来 API 与数据库的字段映射埋下了伏笔。...SQL 数据库:绝大多数数据库列名使用 snake_case。API 使用 camelCase 意味着 ORM 层必须始终承担转换工作。...7.2 何时使用 snake_case?...API 主要用户为 Python 数据科学家或系统运维(Curl/Bash) 遗留系统已经使用 snake_case,一致性优先 极度追求后端开发速度且无资源维护 DTO 层 7.3 决策一览表 结语:
DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE...);那么这样,我们就等于告诉 objectMapper 在对对象进行序列化和反序列化的时候,使用 SNAKE_CASE 命名方式。...SNAKE_CASE:所有字母均为小写,并在名称元素之间使用下划线作为分隔符,例如 snake_case。...根据 Java 和 Json 的命名规范来说,其实大家都有点乱命名,但对一些比较规范的项目,通常单词之间我们使用下划线多。我们并不太使用横杠的方式来处理命名。...所以,很多时候,你可能需要使用 SNAKE_CASE 来标记你的命名规则。https://www.isharkfly.com/t/jackson-snake-case/15034
在变量命名的习惯方法有多种,不同的语言变量都有约定俗成的命名方式,比如常见就是蛇峰命名法(camel-case)和蛇形命名法(snake-case),比如Java中的命名习惯就是用camel-case,...而SQL语言和C语言这些历史更久的设计语言命名习惯是snake-case....数据库字段名转换为Java字段名,我们有时需要将这两种不同命名格式的变量名进行相互转换,做这个转换自己也不复杂,因为经常要用到而且要可靠,所以在网上找了找,找到如下这篇文章,比较全面的介绍了camel-case...和snake-case之间转换的各种实现方案 《Convert a String to Camel Case》 看了文章才知道,其实一些著名的第三方库都提供了命名格式的转换工具,比如 Apache
最近的工作有一个需求,需要利用linux shell脚本将_或-作连字符的变量名字符串转为驼峰命名法(camel-case)的字符串,其实吧,'_'做连字符的命名方式有专门的名字,蛇形命名法(snake-case...通过搜索引擎找到stackoverflow上找到了下面这个帖子4 与我的需求基本一样,是想把一个脊柱命名法(spinal-case)字符串转换为驼峰命名法(camel-case)的字符串。...HelloWorldTom 对于MacOS下zsh无效 参考资料 《匈牙利命名法为何被淘汰_有意思的三种变量命名法:CamelCase, snake_case, spinal-case…》 ↩︎ 《5...Basic REST API Design Guidelines》 ↩︎ 《What is camelCase, PascalCase, kebab-case and snake_case?》...↩︎ 《Spinal Case to Camel Case》 ↩︎
Winform 如何使用Abp 安装 Volo.Abp.Core Install-Package Volo.Abp.Core -Version 4.4.4 创建模块和应用 // 创建模块(具体用途暂时不管...) // 一个继承自 AbpModule 的类 public class AppModule : AbpModule { } // 使用 AbpApplicationFactory 创建一个应用 var...app = AbpApplicationFactory.Create(); // 初始化应用 app.Initialize(); 使用应用中的 ServiceProvider...获取服务从而实现依赖注入 初始化app之后,就可以使用app的依赖注入功能了,下面是默认的 Program.cs internal static class Program { /// [STAThread] static void Main() { // 使用 AbpApplicationFactory 创建一个应用 var app =
## mysql case when使用 SELECT order_no, case is_test when 0 then '否' when 1 then '是' end as '是否测试' from...`tbl_order` WHERE `order_no` in ( 'afsd122112121' ); SELECT order_no, case is_test when 0 then '否'...else '是' end as '是否测试' from `tbl_order` WHERE `order_no` in ( 'afsd122112121' ); SELECT order_no, case
sqlserver case使用方法 实例 SELECT kehubianhao,CASE WHEN ContractDate <= '2022-05-22' THEN '0' WHEN ContractDate
ABP中对邮件的封装主要集成在Abp.Net.Mail和Abp.Net.Mail.Smtp命名空间下,相应源码在此。...#一、Abp集成的邮件模块是如何实现的 分析可以看出主要由以下几个核心类组成: EmailSettingNames:静态常量类,主要定义了发送邮件需要的相关参数:Port、Host、UserName、Password...想具体了解源码的实现方式,建议参考以下两篇博文: 结合ABP源码实现邮件发送功能 ABP源码分析七:Setting 以及 Mail # 二、如何使用Abp集成的邮件系统发送邮件 1....emailSender.Send("ysjshengjie@qq.com", task.AssignedPerson.EmailAddress, "New Todo item", message); # 三、如何使用...Abp集成的通知模块发送通知 直接上代码示例: 首先,在Service中通过构造函数注入INotificationPublisher /// ///In constructor
语法说明: 方式一: CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result …] [ELSE result...] END 方式二: CASE WHEN [condition] THEN result [WHEN [condition] THEN result …] [ELSE result] END...使用演示样例: mysql> select id,name, (gender) as ‘性别’ from t_user; +—-+————+——+ | id | name | 性别 |...—-+————+——+ 3 rows in set (0.00 sec) 应用常景: Eg:在论坛中,不同类型的贴子的type不一样,置顶贴是一直置顶的,而精华贴和普通贴在排序上是一样的,此时就能使用...mysql的Case,使在排序时精华贴和普通贴的type是一样的。
SQL中的CASE WHEN使用 Case具有两种格式。简单Case函数和Case搜索函数。...‘第二类’ ELSE’其他’ END 下面我们来看一下,使用Case函数都能做些什么事情。...如果使用Case函数,SQL代码如下: SELECT SUM(population), CASE country WHEN ‘中国’ THEN ‘亚洲’ WHEN ‘印度’ THEN ‘...( CASE WHEN sex = ‘2’ THEN population ELSE 0 END) –女性人口 FROM Table_A GROUP BY country; 这样我们使用Select...三,在Check中使用Case函数。 在Check中使用Case函数在很多情况下都是非常不错的解决方法。
如果只是简单的去介绍如何去使用ABP,我只需参照官方文档,实现到任务清单Demo中去就可以了,不劳神不费力。但是,这样就等于一知半解。 知之为知之,不知为不知,是知也。...后续的文章我会继续保持之前的书写风格,并适当穿插一些对DDD中的概念的理解,来加深对ABP框架的学习。...使用领域服务 经过上面的分析,很显然我们的用例,使用领域服务来实现更合适。...ABP中定义了IDomainService接口,按约定所有的领域服务都要实现它,实现之后,领域服务被自动暂时的注册到依赖注入系统。...同样,领域服务也可以从DomainService类继承,因此它可以使用继承得来的日志、本地化、等属性。
源码路径:Github-LearningMpaAbp 1.引言 最近刚学习了下DDD中领域事件的理论知识,总的来说领域事件主要有两个作用,一是解耦,二是使用领域事件进行事务的拆分,通过引入事件存储,来实现数据的最终一致性...Abp中使用事件总线来实现领域事件,而关于事件总线的实现,大家可参考我这篇博文——事件总线知多少,本文将不再赘述。 2.用例分析 当用户被成功分配任务后,发送邮件和消息通知给用户。...3.使用领域事件 就这个用例而言,“用户被成功分配任务”就是一个领域事件。下面我们就来实际应用一下。 3.1....应用程序启动时Abp根据约定俗成的命名规则将事件源和事件处理注册到了依赖容器中和事件总线维护的容器中。我们也可以自行在应用服务或领域服务中手动注册。 领域事件在哪触发(发布)?...4.最后 由于demo比较简单,找不到合适的用例,以上使用的用例比较简单。
1 下载一个新的ABP模板项目 http://www.aspnetboilerplate.com/ 2 在Windows上安装MySql, 创建一个新的数据库 sampledb https://dev.mysql.com...Install-Package MySql.Data.Entity - 安装MySql.Data.Entity组件的命令 注意: 这里不要安装最新版本的MySql.Data.Entity, 因为模板项目使用的....net framework版本是4.5.2, 对应的MySql.Data.Entity的版本要使用6.8.3 , 如果使用最新的版本,后面会报错 4 修改Web.config文件 <entityFramework...connector-net-entityframework60.html 5 在Package Manager Console中执行命令 Update-Database –Verbos 6 现在就可以运行ABP
二 安装 postgresql了解的主要原因是因为腾讯很多招聘都有要求,那么不管怎么说crud折腾一次是必要的 但是这玩意好像他们都不更新几年了.......我把自己的猜测说一下 早期postgresql性能优于mysql,甚至有博客说是mysql的三倍。...但是在mysql 5.5就被追平,5.7反超,所以说腾讯用postgresql是历史原因,postgresql的开源团队毕竟几年都没更版本了。 postgresql在多年前就支持json。...mysql还没有,那么只要不引入其他支持json的等postgresql还是有一战之力的,但是5.7mysql也支持了......那么除去性能除去json,腾讯同时使用这两数据库的原因估计就是postgresql在高压环境下性能并没有下降,而myql明显下降。还有各种数据格式的支持。sql编程能力强。
工作中经常需要写各种 sql 来统计线上的各种业务数据,使用 CASE 能让你的统计事半功倍,如果能用好它,不仅SQL 能解决的问题更广泛,写法也会漂亮地多,接下来让我们看看 CASE 的各种妙用吧,在开始之前我们简单学习一下...的用法详解 知道了 CASE 的用法,接下来我们来举几个例子来看下 CASE 的几种妙用,首先让我们准备两张表(字段设计还有优化的空间,只是为了方便演示 CASE 的使用),用户表(customer)...district IN ('杭州','义乌') -- 统计海南用户数 SELECT COUNT(*) FROM customer WHERE district IN ('海口', '三沙') 进阶用法:使用...需要注意的是最后一步 「ELSE vip END」极为关键,如果不加这一句,则如果 vip_level 不为 2 或 3,会被更新成 NULL,这样就会把其他值的 vip_level 给清掉 总结 可以看到,使用...CASE 给我们带来了很大的便利,不仅逻辑上更为紧凑,而且相比于多条 sql 的执行,使用 「CASE WHEN」一行就能解决问题,方便了很多
本文中记录的是关于case语句的用法 行列转换 已有数据的重分组和分类 与约束的结合使用 针对聚合结果的条件分支 ?...在有些数据库是不支持这种写法,但是在mysql中是可以顺利执行的: 先对select子句里面的列表进行扫描 再对列进行计算 不推荐使用!!!!!...案例4-update中使用case进行条件分支 需求 1.对当前工资为30万日元以上的员工,降薪10%。 2.对当前工资为25万日元以上且不满28万日元的员工,加薪20% ?...中使用聚合函数 需求 关于学生社团的表格: 只参加一个社团的学生的社团ID 参加了多个社团的学生的主社团ID,Y表示是主社团** ?...,熟练之后可以使用select语句进行分支 总结 case表达式可以写在select子句里时,可以写在聚合函数内部,也可以是外部 能够写列名和常量的位置,都可以使用case语句 case表达式可以写在
当然我主要就是冲着PostGIS来的,不过在这之前首先得会玩PostGreSQL。下面就简要记录下使用过程。 安装 PostgreSQL有个官方网站,这里有简要的说明和文档。...在\etc\postgresql\ 目录下也会有对应版本号的配置文件。如果发现什么端口错误或者被占用的问题可以在postgresql.conf下修改下端口或者删除多余的版本。...使用 PostgreSQL和其他数据库有个很大的不同就是他登陆的时候是以数据库的身份登陆的,默认的数据库是postgres(而且会在安装时自动生成postgres这个角色)。...具体的创建角色和数据库的过程参照**PostgreSQL学习手册(角色和权限)**。 关于其他的细节可以参考**PostgreSQL 8.1 中文文档**这里的教程来。...参考 PostgreSQL学习手册(角色和权限) PostgreSQL 8.1 中文文档
概述 Prometheus使用postgresql需要使用postgresql-adapter进行数据转换。...在安装postgresql-adapter之前需要安装2个扩展:pg_prometheus和timescaledb 官方推荐使用PostgreSQL, pg_prometheus,和TimescaleDB...打包在一起的容器,但对于使用已有的postgresql来说并不合适,故需要手动编译安装。...---- 环境准备 使用os为:redhat 7.4 假设已经安装好postgresql,本次使用的postgresql版本为11.1,安装路径为:/usr/pgsql-11/bin/。...使用容器启动 从dockerhub下载镜像 由于使用容器连接postgresql,故pgsql的pg_hba.conf中添加如下内容,172.17.0.2/16为容器的IP段,重启psql host
ASP.NET Boilerplate(简称ABP)是在.Net平台下一个很流行的DDD框架,该框架已经为我们提供了大量的函数,非常方便与搭建企业应用。...关于这个框架的介绍我就不多说,有兴趣的可以参见官方文档:http://www.aspnetboilerplate.com/Pages/Documents 使用ABP+EF+SQL Server是比较推荐的组合...,但是既然我们使用的是EF,那么就应该是和数据库分离的,也就意味着我们应该可以采用其他的数据库,比如MySQL。...ABP初始化的项目模板还提供了Module Zero项目,为我们提供了用户、角色、权限等等通用功能,但是在使用初始化的模板连接MySQL却会报错,无法运行,下面我来解决ABP+MySQL的问题。...这是操作步骤: 1.从官方网站下载ABP项目模板,并解压到本地,用VS打开,这里我们新建一个项目ConnectMySql。