首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

很开心,使用mybatis过程踩到一个坑。

实际开发过程踩到了mybatis一个坑,觉得值得记录、分享一下。 先说说这个坑是什么吧。如果你踩过这个坑,并且知道具体原因,那这篇文章可以加深你印象。...通过ideaDebug模式,我们可以得到程序运行开始,到断点处整个调用链路。(如果下面的图片看不清楚,可以点开查看大图): ?...通过调用链,往后走三步,我们可以看到sql是boundSql获取到: ? 那么boundSql是哪里来呢?我们继续往回走。 往回走11步,我们可以看到boundSql获取过程: ?...是的,无脑使用了CV大法。导致欢声笑语写出了bug。orderStatus传入类型一个Byte,和""做判断有任何意义吗?...最后说一句 解决这个问题之后,还是在网上查了一圈,发现也有人遇到了这样问题,但是点开搜索出来第一篇就是一个错误描述,他说mybatis中会把0当做null来处理?哥们你看源码了吗?

1K10

很开心,使用mybatis过程踩到一个坑。

这是why技术第14篇原创文章 实际开发过程踩到了mybatis一个坑,觉得值得记录、分享一下。 先说说这个坑是什么吧。...通过ideaDebug模式,我们可以得到程序运行开始,到断点处整个调用链路。(如果下面的图片看不清楚,可以点开查看大图): ?...通过调用链,往后走三步,我们可以看到sql是boundSql获取到: ? 那么boundSql是哪里来呢?我们继续往回走。 往回走11步,我们可以看到boundSql获取过程: ?...是的,无脑使用了CV大法。导致欢声笑语写出了bug。orderStatus传入类型一个Byte,和""做判断有任何意义吗?...最后说几句 解决这个问题之后,还是在网上查了一圈,发现也有人遇到了这样问题,但是点开搜索出来第一篇就是一个错误描述,他说mybatis中会把0当做null来处理?哥们你看源码了吗?

1.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

使用 NestJS 开发 Node.js 应用

NestJS 最早在 2017.1 月立项,2017.5 发布第一个正式版本,它是一个基于 Express,使用 TypeScript 开发后端框架。...设计之初,主要用来解决开发 Node.js 应用时架构问题,灵感来源于 Angular。本文中,将粗略介绍 NestJS 一些亮点。 组件容器 ?...NestJS 采用组件容器方式,每个组件与其他组件解耦,当一个组件依赖于另一组件时,需要指定节点依赖关系才能使用: import { Module } from '@nestjs/common';...例如使用 Filters,来捕获处理应用抛出错误: @Catch() export class AllExceptionsFilter implements ExceptionFilter {...NestJS 对 Apollo server 进行了一层包装,使得能在 NestJS 更方便使用

3.1K60

Nest 实现天气预报查询服务

今天我们来实现一个查询城市天气预报服务。 使用是和风天气免费 api。 免费接口一天可以请求 1000 次,自己项目足够用了: 最多可以查询未来 7 天天气预报。...首先,登录和风天气, 然后在用户中心绑定邮箱和手机号: 之后进入控制台,点击创建项目: 这里大家选择免费订阅(别的项目用了,就没免费名额了),指定 key 名字: 然后就可以看到你 key 了:...location=101120201&key=187d6c3dd15f4d2d99e2a7e0ee08ba04 这里返回了 2024-5-1 到 2024-5-7 天气。...思路理清了,我们来写下代码: npm install -g @nestjs/cli nest new city-weather 安装 pinyin 包和它类型: npm install --save...所以用 @nestjs/axios 这个包: npm install --save @nestjs/axios axios AppModule 引入下 HttpModule: 这里可以填入各种请求配置

15210

BFF与Nestjs实战

适用场景 BFF虽然比较流行,但不能为了流行而使用,要满足一定场景并且基建很完善情况下才使用,否则只会增加项目维护成本和风险,收益却非常小,认为适用场景如下: 后端有稳定领域服务,需要聚合层...一些基础知识 使用Nestjs完成一个基本服务需要有Module,Controller,Provider三大部分。...Module,字面意思是模块,nestjs由@Module()修饰class就是一个Module,具体项目中我们会将其作为当前子模块入口,比如一个完整项目可能会有用户模块,商品管理模块,人员管理模块等等...Middleware 中间件 Nestjs是对Express二次封装,Nestjs中间件等价于Express中间件,最常用场景就是全局日志、跨域、错误处理、cookie格式化等较为常见...拦截器具有一系列有用功能,它们可以: 函数执行之前/之后绑定额外逻辑 转换函数返回结果 转换函数抛出异常 扩展基本函数行为 根据所选条件完全重写函数 (例如, 缓存目的) 下面我们实现一个响应拦截器来格式化全局响应数据

2.6K10

nest.js项目集成websocket服务

nestjs项目中,我们将websocket服务集成为一个模块,这个模块中集成服务便是配置websocket文件,websocket这个类必须用@WebSocketGateway装饰器修饰,本质也是一个服务...,即配置providers类。...这里有个技巧,如果第一个参数设置和http服务器相同,启动时会报错,显示端口被占用,如果不设置第一个参数,那么默认端口和http服务器端口相同,但是不会报端口被占用错误。...看看一下websocket文件模块结构: image.png 只需要一个网关(nestjs项目中将websocket称为网关)文件和一个module文件,网关文件内容就是上面代码。...,其他模块使用websocket模块,本质上使用事websocket模块方法,假如在posts控制器我们需要使用websocket服务,只需将其以来导入即可,代码如下: image.png

5.7K31

快速打开 Nestjs 世界

引用官方介绍开始: Nest(NestJS)是一个用于构建高效、可扩展Node.js服务器端应用程序框架。...注入并使用 将 OrdersService 通过构造函数注入到 OrdersController 控制器,这样就得到了初始化后 ordersService 成员,接着就可以不同处理函数调用服务中提供能力...host参数是一个ArgumentsHost对象,host参数获取对传递给原始请求处理程序(异常产生控制器)Request和Response对象引用。...number类型,但typeof id 仍然收到一个string类型数据,这样数据传递到服务层去做处理是很危险,现在就来尝试绑定Parse*Pipe管道解决这个问题; @Get('find')...,任何模块外注册全局管道(如上例 useGlobalPipes())无法注入依赖,因为绑定是在任何模块上下文之外完成

40810

Node版Spring - 那些让人眼前一亮NestJS特性

一、依赖注入 Provides是Nest最基本一个概念,许多基本Nest类可能视为provider-service,repository,helper等等,实际开发,比如常用service,...里使用CatsService不是通过使用New来实例化, 而是constuctor声明即可。...Pipe_1 管道有两个类型: 转换:管道将输入数据转换为所需数据输出, 验证:对输入数据进行验证,比如form表单提交数据类型 拦截器是使用 @Injectable() 装饰器注解类。...它们可以: 函数执行之前/之后绑定额外逻辑 转换函数返回结果 转换函数抛出异常 扩展基本函数行为 根据所选条件完全重写函数 (例如, 缓存目的) /* logging.interceptor.ts...结束语 通过本文可以发现, Nestjs一个有完整应用架构框架,和Express、Koa等框架相比,提供了基础控制器能力,安全(认证、鉴权),数据库集成到微服务。

2K30

深入理解 Nest.js 控制器:构建强大RESTful API

然后,您可以定义不同 HTTP 请求处理方法,这些方法会与不同路由端点相关联。让我们通过一个示例来创建一个简单控制器,用于处理用户资源 CRUD 操作。...这样,我们可以方法访问 'id' 参数值。处理请求体数据请求体数据通常用于创建或更新资源时发送数据。 Nest.js ,我们使用 @Body 装饰器来捕获请求体数据。...示例 createUser 和 updateUser 方法,我们使用 @Body() 来捕获整个请求体数据,并将其作为 user 参数传递给方法。这样,我们可以方法访问请求体数据。...使用 try-catch控制器方法,您可以使用 try-catch 语句来捕获和处理异常。例如,如果在处理请求时发生了错误,您可以抛出一个异常,然后 catch 子句中处理它。...当异常被捕获时,我们异常获取状态码和消息,并将其包装成 JSON 响应发送给客户端。

36120

【Nest教程】自定义拦截器处理处理响应数据

拦截器(Interceptors)是一个使用 @Injectable() 装饰类,它必须实现 NestInterceptor 接口。...今天我们讲下自定义拦截器,Nest拦截器功能很强大,可以函数执行之前/之后绑定额外逻辑、转换函数返回结果、转换函数抛出异常、扩展基本函数行为等。...我们之前项目基础上增加自定义拦截器,转换函数返回结果。...2 项目绑定自定义拦截器 绑定拦截器也是比较简单,我们项目src目录下,main.ts文件导入我们新建文件,绑定即可 import { NestFactory } from '@nestjs/core...我们可以看到,最外层是我们自定义,data里是响应数据。文章里没有过多讲解理论知识,因为也是刚开始学习Nest,只能是需要什么就查什么,记录什么。

1.6K1412

使用Java和Python解题:定义栈数据结构,请在该类型实现一个能够得到栈中所含最小元素min函数(时间复杂度应为O(1))。

问题描述 定义栈数据结构,请在该类型实现一个能够得到栈中所含最小元素min函数(时间复杂度应为O(1))。...解题思路 思路:栈stack保存数据,辅助栈assist保存依次入栈最小数 stack依次入栈,6,5,8,4,3,9 assist依次入栈,6,5,4,3 每次入栈时候,如果入栈元素比assist...栈顶元素小或等于则入栈,否则不入栈。...[] #辅助栈 def push(self, node): # write code here min = self.min() #得到栈中元素最小值...write code here if self.stack: if self.stack[-1] == self.assist[-1]: #若数据栈和辅助栈栈顶元素值相等

87130

写在 2021: 值得关注学习前端框架和工具库

你可能同样犹豫要不要学这玩意,意见是:学!因为确实NodeJS目前没有特别全面的框架(虽然NestJSSpring面前也是弟弟)。...GraphQL-Code-Generator[48],很强大工具,.graphql文件到语言可以直接使用方法/类型定义,这个思想实际上各个语言都有,如Dart和Ruby等。...TS这个工具主要能力就是生成TS类型定义,同时它插件体系还提供了更多额外能力,如Apollo-Client插件,让你可以直接使用封装好useXXXQuery等,前端连查询语句都不用写了...Redux-Observable[91], ReduxRxJS中间件。 Reactive.How[92],生动展示RxJS Observable操作符管道流动,入门期间使用有奇效。...JSON-Server[101],写demo神器,JSON文件快速得到一个REST API,和Husky、LowDB同一个作者。

4.2K10

nestjs搭建HTTP与WebSocket服务

本例,我们选择使用socket.io作为nestjs上WebSocket具体实现,因为socket.io是一个比较著名websocket库,同时支持服务端和客户端,并且客户端/服务端均内建支持了...) 该机制由连续 HTTP 请求组成: 长时间运行请求,用于服务器接收数据GET 短运行请求,用于将数据发送到服务器POST 由于传输性质,连续发出可以同一 HTTP 请求连接和发送。...成功响应拦截器 对于集成nestjsWebSocket服务,想要编写并配置一个成功响应拦截器并不复杂,没有什么坑。...实际发送,我们会看到,postman无法接受到异常: 服务端会看到一个异常报错: 对于这个问题,我们需求是无论是否有异常,都需要使用ServerResponseWrapper进行包裹。...2)WebSocket异常过滤器,想要继续后数据处理,需要在方法返回前,host取到第三个参数对象(索引值为2),该值是一个回调函数,将处理后数据作为参数,调用该callback方法,框架才能继续处理

56230

写在2021: 值得关注学习前端框架和工具库

你可能同样犹豫要不要学这玩意,意见是:学! 因为确实NodeJS目前没有特别全面的框架(虽然NestJSSpring面前也是弟弟)。...GraphQL-Code-Generator,很强大工具,.graphql文件到语言可以直接使用方法/类型定义,这个思想实际上各个语言都有,如Dart和Ruby等。...TS这个工具主要能力就是生成TS类型定义,同时它插件体系还提供了更多额外能力,如Apollo-Client插件,让你可以直接使用封装好useXXXQuery等,前端连查询语句都不用写了...Redux-Observable, ReduxRxJS中间件。 Reactive.How,生动展示RxJS Observable操作符管道流动,入门期间使用有奇效。...JSON-Server,写demo神器,JSON文件快速得到一个REST API,和Husky、LowDB同一个作者。

2.8K10

好未来数据台 Node.js BFF实践(一):基础篇

4月份刚加入数据台,原本想法是半年内不做大刀阔斧改变,优先完善团队现有的基建设施,比如组件库、charts库、工具、规范等。Node.js中间层立项完全是一个意外。...除了以上两条以外还有另一个隐藏优势,前端能力边界扩宽后技术视野也会更宽阔,能够纵向角度上全面思考业务。...之所以选了 v7 而没有用最新 v8 版本,原因之一是 NestJS v8 版本依赖 RxJS v7。RxJS v7 废弃了很多 v6 版本操作符,用惯了 v6 一时之间切换过来很不习惯。...也有可能是学艺不精,还没掌握 NestJS 精髓,欢迎指正。...数据 Node.js 服务每个 pod 都是单核,没有起多进程,也就没有使用反向代理必要性,所以最终使用 TCP 探针做存活检测。

3.6K20

Nest.js 零到壹系列(四):使用中间件、拦截器、过滤器打造日志系统

首先,一个良好服务端,应该有较完善日志收集功能,这样才能在生产环境发生异常时,能够日志复盘,找出 Bug 所在。 其次,要针对项目中抛出异常进行归类,并将信息反映在接口或日志。...二、异常处理 开发过程,难免会写出各式各样“八阿哥”,不然程序员就要失业了。一个富有爱心程序员应该在输出代码同时创造出3个岗位(手动狗头)。 ?...HTTP 错误捕获 Nest提供了一个内置 HttpException 类,它从 @nestjs/common 包中导入。...已经有了明显区别,再看看 errors.log,也写进了日志: ? 如此一来,代码未捕获错误也能从日志查到了。...● Nest.js 零到壹系列(一):项目创建&路由设置&模块● Nest.js 零到壹系列(二):数据库连接● Nest.js 零到壹系列(三):使用 JWT 实现单点登录 ·END·

6.4K73

Nest.js 实战系列四:使用中间件、拦截器、过滤器打造日志系统

首先,一个良好服务端,应该有较完善日志收集功能,这样才能在生产环境发生异常时,能够日志复盘,找出 Bug 所在。 其次,要针对项目中抛出异常进行归类,并将信息反映在接口或日志。...log4js 过程,主要是处理日志组成部分(包含了时间、类型,调用文件以及调用坐标),还可以根据日志不同级别,控制台中用不同颜色显示。...二、异常处理 开发过程,难免会写出各式各样“八阿哥”,不然程序员就要失业了。一个富有爱心程序员应该在输出代码同时创造出3个岗位(手动狗头)。 ?...HTTP 错误捕获 Nest提供了一个内置 HttpException 类,它从 @nestjs/common 包中导入。...已经有了明显区别,再看看 errors.log,也写进了日志: ? 如此一来,代码未捕获错误也能从日志查到了。

5.5K20
领券