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

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

这是why技术第14篇原创文章 实际开发过程踩到了mybatis一个坑,觉得值得记录、分享一下。 先说说这个坑是什么吧。...为什么mybatis数字0和空字符串""比返回是true呢?...是的,无脑使用了CV大法。导致欢声笑语写出了bug。orderStatus传入类型是一个Byte,和""做判断有任何意义吗?...最后说几句 解决这个问题之后,还是在网上查了一圈,发现也有人遇到了这样问题,但是点开搜索出来第一篇就是一个错误描述,他说mybatis中会把0当做null来处理?哥们你看源码了吗?...后来把这个问题分享群里之后,群里一个朋友也给我分享了一篇文章,肥朝大佬写《还有这种操作?浅析为什么要看源码》。文中给出了另一种解决方案,有理有据,简明扼要,是一篇很好文章,大家可以看看。 ?

1.6K10

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

实际开发过程踩到了mybatis一个坑,觉得值得记录、分享一下。 先说说这个坑是什么吧。如果你踩过这个坑,并且知道具体原因,那这篇文章可以加深你印象。...为什么mybatis数字0和空字符串""比返回是true呢?...是的,无脑使用了CV大法。导致欢声笑语写出了bug。orderStatus传入类型是一个Byte,和""做判断有任何意义吗?...最后说一句 解决这个问题之后,还是在网上查了一圈,发现也有人遇到了这样问题,但是点开搜索出来第一篇就是一个错误描述,他说mybatis中会把0当做null来处理?哥们你看源码了吗?...后来把这个问题分享群里之后,群里一个朋友也给我分享了一篇文章,肥朝大佬写《还有这种操作?浅析为什么要看源码》。文中给出了另一种解决方案,有理有据,简明扼要,是一篇很好文章,大家可以看看。 ?

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

免疫荧光分析误区,别踩雷了!

这句话含义可以再延伸一下,即只要在被测物存在一个恒定已知量,就可以采用它作为参考进行半定量分析。 ? 问题2:举例说明哪些指标是典型半定量分析?...有一些情况下,初学者经常犯错误,即拍摄是不同伽马值下采集荧光照片,或通过调整伽马值γ来呈现不同荧光强度。...变量这么多,你还敢对免疫荧光染色进行半定量分析吗? ? 问题4:为什么WB蛋白条带可以半定量分析,而蛋白免疫荧光却不行呢?...答:在理论上,得到一张蛋白条带所涉及操作是相同,后面对蛋白进行发光和拍照,这些也是同一刻进行操作。不涉及时间差问题。即你是同一条件、同一间对此条带不同孔进行检测。...TUNEL荧光染色分析本质是一个计数问题,即通过计数凋亡细胞核数量,来分析该张组织切片或细胞爬片上凋亡指数。这个过程,我们计数不会受到荧光衰减强烈影响。

2.9K20

Raid0、 Raid1、 Raid5、 Raid10原理、特点、性能区别

由于大部分硬盘在出厂已经格式化过,所以只有硬盘介质产生错误时才需要进行格式化。...RAID 1和RAID 10使用就是镜像。 Parity:奇偶校验位    在数据存储和传输,字节额外增加一个比特位,用来检验错误。...Spare(热备用),当一个磁盘出现故障,准备使用加电待用磁盘;Failed(故障),磁盘发生错误导致失效或用户利用 NetRAID控制器使用程序使驱动器脱机状态;Rebuilding(重建),...Stripe Size:条带容量 每个磁盘上连续写入数据总量,也称作“条带深度”。你可以指定每个逻辑驱动器条带容量从2KB,4KB,8KB一直到128KB。...此技术非常有用,它比单个磁盘所能提供读写速度要快 多,当数据从第一个磁盘上传输完后,第二个磁盘就能确定下一段数据。数据条带化正在一些现代数据库和某些RAID硬件设备得到广泛应用。

51.7K33

详解Raid级别和知识点

部分RAID模式,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍速率。...RAID0(条带化)数据将使用切片方式被写入到磁盘。一半内容放在一个磁盘上,另一半内容将被写入到另一个磁盘。...当我们保存数据,它将同时写入这两个2TB驱动器。创建 RAID 1(镜像化)最少需要两个驱动器。如果发生磁盘故障,我们可以通过更换一个磁盘恢复RAID 。...同样采用奇偶校验来检查错误,但没有独立校验盘,而是使用了一种特殊算法,可以计算出任何一个带区校验块存放位置。...当我逻辑卷上写数据,它会使用镜像和条带方式将数据保存到4个驱动器上。 如果 RAID 10 上写入数据“TECMINT”,数据将使用如下方式保存。

80220

Facebook F4架构解读:万亿级图片存储Haystack演进

但是有两个例外,一个是用户头像,一直是热数据;另外一个普通图片,使用三个月作为阈值。 热数据总是那些头部数据,相对来说增长较慢。...这是从 UNIX 以来就一直强调一个原则。...同一条带任意两个块互称为兄弟块(companion block)。正常读取,可以直接从数据块读(猜是那n个块,不用额外进行计算还原,有待考证,还得看里所码原理以及具体实现)。...然而,经过故障,重建和替换后,肯定会有一些不符合上述原则情况,比如两个同条带数据块被放在了同一个数据容错区域中。协调节点会运行一个平衡摆放位置进程去检查一个数据单元数据块分布。...但是论文说有点啰嗦,同一个点在不同地方说了好几遍,但同时一个模块有时又分散不同模块,不好连成一个整体,在这里,简单总结一下。 一个数据单元(cell)存在一个数据中心中,包含 14 个机架。

1.3K20

深度阅读之《100 Go Mistakes and How to Avoid Them》

毕竟标准库里也这样用了: for 循环加指针,老司机也会掉 for range 循环里保存迭代变量指针是一个非常容易犯错误,Go 老手也会犯。...原因是迭代变量至始至终都是同一个值,对它取地址得到值也是相同: rune 代表一个“字”,等于 Unicode code point。...使用 strings.Builder ,可以用 Grow 方法来预分配内存,自己之前一直忽略了预分配。因为它底层是一个 slice,所以预分配 slice 是有必要。...转 string 做法标准库是这么做,见 strings.Clone 方法: 当我们需要取出一个 slice 里小部分元素,为了防止取字符串子串内存泄漏,下面这种做法可能会在编译器“误伤...问chatGPT关于data race有什么坏处,得到回答: sync.WaitGroup 正确用法是:父 goroutine 调用 Add 方法,子 goroutine 调用 Done

91910

数据结构思维 第十一章 `HashMap`

在下一个练习,您将看到细节。 11.1 练习 9 MyHashMap.java提供了哈希表大纲,它会按需增长。...当我运行这个代码感到惊讶:斜率大约为1.7,这表明这个实现不是一直都是常数。它包含一个“性能错误”。 阅读下一节之前,您应该跟踪错误,修复错误,并确认现在put是常数时间,符合预期。...幸运是,有一个简单解决方案,我们以前看过:我们必须维护实例变量条目数,并且每当我们调用一个改变它方法更新它。 你会在这本书仓库中找到我解决方案MyFixedHashMap.java。...:当我子地图上调用put,我们不知道是否添加了一个条目。...当我测量这个解决方案发现放入n个键总时间正比于n,也就是说,每个put是常数时间,符合预期。 11.6 UML 类图 本章中使用代码一个挑战是,我们有几个互相依赖类。

39710

博士面试把导师衣服给扒了|Science年度十大热文「第三弹」

当我终于走进满是竞争对手房间腋窝下冒着大圈汗水,而我脸像一个肿胀西红柿,教授似乎被逗乐了。 就在那时,他邀请我到显微镜前,帮他「脱了衣服」,就像你开头看到那样。...多年后,问我导师为什么录取了,尽管我成绩单很差,而且面试上大出洋相。 「原因很简单,一直寻找一位不会在危机时刻惊慌失措故障排除者。你面试完全表现出了这些素质」,他说道。...在那一刻,意识到:也许面试挫折不是发生在身上,而是降临身上,否则,就没有机会脱颖而出。 回想起来,一生都充满了这样经历。 当我祖国机构崩溃被取消了博士奖学金。...花时间学习检验假设所需实验室方法后,他们开始着手进行第一个实验。 在数据分析当天,将蛋白质条带图交给他们,让他们查看图像并讨论他们发现。...开始发现实验室任务单调,而且限速步骤变得不耐烦,比如当我等待细胞生长。 相比之下,当我处理编码问题或数据可视化挑战时,创造力源源不断。还以更快速度产生了结果,这让感到很有效率。

32730

生动形象告诉你为什么需要https以及非对称加密作用!

想要黄金运输不被别人抢走就得用一些安全手段。 对称加密就是把黄金放到保险箱里,然后设置一个密码,这个密码可以用来给保险箱上锁和解锁。...大小银行在需要进行黄金运输时候,先叫一个小弟把你密码纸条带回来,当我把保险箱给你时候,按照你密码来上锁,再把写了密码纸条和保险箱一起给你。...那如果说第一次给你运黄金时候,先用密码来加密保险箱,再把密码纸条放进去,你那边拿到保险箱了用钥匙解开,拿出里面的黄金和写有密码纸条。这时候密码咱们可以确定别人是不知道,因为一直保险箱里。...证明公开密钥正确性证书 公开密钥加密还是存在一些问题,继续使用上面的例子,如果想要给大银行运黄金,大银行得先告诉密码是啥,不然没法上锁,于是派了一个小弟过去问,但是路上给劫匪绑架了...总结 以上内容是自己在学习过程中一环一环脑补出来例子,最初自己也很绕,希望大家看完上述内容更加深入学习能够减少难度。如果有什么理解上偏颇望大家能够评论区指正。

79500

为什么比起 IntelliJ IDEA,更喜欢 Eclipse…

在过去12年间里,主要使用Eclipse,但是某些情况下,使用IDEA——编写Scala时候,编写Android时候,以及最近——由于Eclipse未能为Java 9发行版做好准备,所以经过半天努力之后...总是很快地回到Eclipse。仍然更偏爱它。不仅仅是因为已经内化了所有的关键字组合(你可以IDEA重用这些组合),也是因为IDEA还有一些觉得更糟糕东西。...没有这方面的代表性基准,但是知道现在我家里8 GB RAM对于开发来说太小了,不过一直没换。 4、它感觉没有那么响应和笨重。 有一点小小延迟,不好说,但是“感觉得到”。...这是可配置,但又是一个奇怪默认值。几乎大家总是希望能够逐个单词(驼峰式大小写情况下)地遍历变量,而不是跳过整个变量(方法/类)名称。...9、几年前,当我将它用于Scala,那个项目从未真正编译过。但是猜那更多是Scala错,而不是IDE。 如果你说,除了前两个,其余都不是重大问题,那我也同意。

1.8K30

和各种诡异 Bug 打交道 13 年,总结了 18 个经验

当我们处理这个问题,我们通常假设它处在空闲列表状态被标记为断开(但是当时它为什么没有从这个列表上撤下?) 没考虑到事情有时发生过早是由于我们没有想到。...而且,如果你If语句一个分支设置了一个变量,你也许应该在其他分支也设置该变量。与此相关是标志(flag)被设定情况。仅仅添加设定标志条件很容易,但是容易忘了添加应该重新设定标志条件。...从小开始,逐渐添加一些需要功能,最终有许多有用工具,写自己小工具优势是得到我想要功能。 测试要发现所有的 bug 几乎不可能。...问题是,当查找相关性,动态分配数字一个数字查找之前被错误地删除。所以,不是寻找 637 之类号码,你寻找是 37,而这个号码不在表。...处理最棘手 bug ,与同事讨论特别有效。 15.密切注意 往往是当调试一个问题很长时间,是因为做了错误假设。

65130

和各种诡异 Bug 打交道 13 年,总结了 18 条经验

当我们处理这个问题,我们通常假设它处在空闲列表状态被标记为断开(但是当时它为什么没有从这个列表上撤下?) 没考虑到事情有时发生过早是由于我们没有想到。 3....而且,如果你If语句一个分支设置了一个变量,你也许应该在其他分支也设置该变量。与此相关是标志(flag)被设定情况。仅仅添加设定标志条件很容易,但是容易忘了添加应该重新设定标志条件。...另一个例子:发送任何数据(零字节)之前,测试 TCP 连接断开。没有使用这些组合来测试是 bug 悄然出现头号原因,测试是原本可以发现这些 bug 。 9....从小开始,逐渐添加一些需要功能,最终有许多有用工具,写自己小工具优势是得到我想要功能。 测试要发现所有的bug几乎不可能。...处理最棘手 bug ,与同事讨论特别有效。 15. 密切注意 往往是当调试一个问题很长时间,是因为做了错误假设。

87680

java 序列化Serializable

当我们需要把对象状态信息通过网络进行传输,或者需要将对象状态信息持久化,以便将来使用时都需要把对象进行序列化 那为什么还要继承Serializable。...那是存储对象存储介质,以便在下次使用时候,可以很快捷重建一个副本。...或许你会问,开发过程,实体并没有实现序列化,但我同样可以将数据保存到mysql、Oracle数据库为什么非要序列化才能存储呢?...Java这个Serializable接口其实是给jvm看,通知jvm,不对这个类做序列化了,你(jvm)帮我序列化就好了。...是否跟当前文件serialVersionUID是否一致,如果一直则反序列化成功,否则就说明当前类跟序列化后类发生了变化,比如是成员变量数量或者是类型发生了变化,那么反序列化时就会发生crash

56360

深度学习不只是“Import Tensorflow”(下)

从视觉上看,我们新节点是这样: ? 当我们增加输入数量,我们方程开始越来越高维度上建模线性关系。...到目前为止,我们所概述函数仅适用于神经网络一层单个节点。每个节点输出vₖ,成为下一层每个节点输入。 然后这个过程神经网络每一层一个节点上重复!...但是当我们开始处理越来越多变量并进入越来越高维度,神经网络变得非常有用。意思是,我们怎么会想出一个能精确映射上千个变量模型呢? 答案是——我们没有。这就是神经网络作用!...让重申: 当加权输入被加在一起并在每个节点上通过一个激活函数,神经网络获得了建模复杂非线性i维关系能力。 这就是为什么神经网络如此有用。...开始训练网络 考虑到这一切,我们开始每个节点上用随机一组权重和偏差来训练我们神经网络。 当我们向网络提供大量包含输入和正确输出数据和训练示例,网络尝试将输入映射到相应输出。

43720

用30分钟读懂人类感知世界39项研究

过去几年里,一直对那些科学领域研究人类是如何进行图像感知事情充满好奇,于是开始到处收集资料。...柱状图和折线图 同一项研究两个独立实验,Zacks和Tversky发现,当参与者被要求描述柱状图中数据,他们倾向于使用坐标轴进行对比(例如,A比BX数量更大)。...但我们也倾向于认为斜率代表速度、高度或数量。这两个约定可能相互冲突。 Gattis和Holyoak 设计了一个实验,其中斜率代表高度或海拔,但这意味着自变量和因变量错误轴上。...颜色 最后,最喜欢另一项研究,Lin创造了一个算法来识别“语义共振颜色”。例如,想谈论海洋,使用蓝色。如果想谈谈爱情,就用粉色或红色。...因为当我们查看图形框架和对象, 不同的人会有不同认知, 有一些认知是先天形成,而有一些是通过后天学习得到不认为在这些研究发现应该完全和不加区别地应用于可视化。

1.1K40

关于 Virtual SANVSAN 常见问题解答

• 问:创建 VSAN 虚拟机存储策略,何时应使用“允许故障数目”,何时应使用条带宽度”呢?...“条带宽度”与性能有关(即,不在缓存读取性能以及取消写入暂存)。设置为 2 或更高值,会使数据多个磁盘之间进行条带化。...• 问:VSAN必须要使用 10GbE 吗? 答:VSAN 并不强制要求使用 10GbE。VSAN也可以较小环境(比如在实验室使用 1GbE 很好地运行。请注意,10GbE 是一个建议值。...• 问:创建 VSAN 虚拟机存储策略,何时应使用“允许故障数目”,何时应使用条带宽度”呢?...“条带宽度”与性能有关(即,不在缓存读取性能以及取消写入暂存)。设置为 2 或更高值,会使数据多个磁盘之间进行条带化。

2.3K20

典型案例:深入剖析 ORA-04031 前世今生

今天就跟大家分享一个工作当中4031案例,解读一下4031前世今生,希望通过今天晚上交流,当我们再次遇见4031错误时不再像之前那么恐惧。...以我这几年工作经验来说,当我们遇到 Oracle 报错,通常都会从数据库 alert 日志看起,结合与错误相关 trace 文件以及发生错误一些系统状态、数据库状态等获取相关信息,综合上面的信息来判断该报错...换句话说,就是跨越多子池条带使用内存。这极少有文档记录,一般来说,内存请求会以轮转方式,从一个“随机”子池中找到它需要内存块。...到这里,我们本案例4031错误基本上已经阐述清楚了。 下面简单总结一下发生4031错误原因以及应对措施: (1) 极高硬解析,例如没有使用绑定变量。...遇见这种情况我们就应该尽量减少硬解析数量,例如使用绑定变量使用 cursor_sharing=FORCE 参数(不建议使用)。 (2) open_cursor 设置过大。

1.2K90

深入剖析 ORA-04031 前世今生

今天就跟大家分享一个工作当中4031案例,解读一下4031前世今生,希望通过今天晚上交流,当我们再次遇见4031错误时不再像之前那么恐惧。...以我这几年工作经验来说,当我们遇到 Oracle 报错,通常都会从数据库 alert 日志看起,结合与错误相关 trace 文件以及发生错误一些系统状态、数据库状态等获取相关信息,综合上面的信息来判断该报错...换句话说,就是跨越多子池条带使用内存。这极少有文档记录,一般来说,内存请求会以轮转方式,从一个“随机”子池中找到它需要内存块。...到这里,我们本案例4031错误基本上已经阐述清楚了。 下面简单总结一下发生4031错误原因以及应对措施: (1) 极高硬解析,例如没有使用绑定变量。...遇见这种情况我们就应该尽量减少硬解析数量,例如使用绑定变量使用 cursor_sharing=FORCE 参数(不建议使用)。 (2) open_cursor 设置过大。

1K51

RAID 独立磁盘冗余阵列 - redundant array of independent disks

RAID种类: raid0:RAID0称为条带化存储,将数据分段存储各个磁盘,读写均可以并行处理,因此读写速率为单个磁盘N倍,没有冗余功能,任何一个磁盘损坏就会导致数据不可用。 ?...因此 RAID2 ,数据按位存储,每块磁盘存储一位数据编码,磁盘数量取决于所设定数据存储宽度,可由用户设定。...可见, RAID2 数据宽度越大,存储空间利用率越高,但同时需要磁盘数量也越多。海明码自身具备纠错能力,因此 RAID2 可以在数据发生错误情况下对纠正错误,保证数据安全性。...RAID4 按块存储可以保证单块完整性,可以避免受到其他磁盘上同条带产生不利影响。 RAID4 不同磁盘上同级数据块同样使用 XOR 校验,结果存储在校验盘。...而且随着成员磁盘数量增加,校验盘系统瓶颈将更加突出。正是如上这些限制和不足, RAID4 实际应用很少见,主流存储产品也很少使用 RAID4 保护。 ?

92820
领券