MoDou Blog

Thinking will not overcome fear but action will.

不学无数——批量测试Mybatis项目中Sql是否正确

批量测试Mybatis项目中Sql是否正确

去Oracle行动 最近公司要发展海外项目,所以要将现有的系统全部平移过去,另外数据库也要从原来的Oracle变为Mysql。公司的数据库交互层面使用的是Mybatis,而Oracle与Mysql也有一些语法上的不同。所以在项目中的Sql要改动,但是多个项目中涉及到的Sql非常多,如果仅凭人工一条一条辨别的话,工作量有点大。所以就萌发出了直接将数据源变为Mysql,利用反射批量执行Mapp...

不学无数——发布自己的Jar包到Maven中央仓库中

发布自己的Jar包到Maven中央仓库中

发布自己的包到Maven中央仓库中 现在Maven几乎成了Java事实上的包管理工具了,Gradle作为后起之秀,也是建立在Maven现有的大量仓库资源之上。使用Maven Central Repository可以很方便地解决第三方库依赖问题。那么,如何将自己开发的包也发布到Maven Central Repository上去呢? 申请SonaType网站的用户 SonaTyp...

不学无数——SpringBoot打jar包或war包获取不到资源文件解决办法

SpringBoot打jar包或war包获取不到资源文件解决办法

问题描述 在开发过程中我们经常会碰到要在代码中获取资源文件的情况,而我在最近将原有的Tomcat的原生项目迁移到SpringBoot项目中时碰到一个问题,就是在本地运行时,获取本地的xml资源文件是能够获取到的,但是项目打成war包然后将其部署到Tomcat中运行时,就会发生问题,报找不到资源文件的错误。然后经过寻找排查确定了是下面代码通过ClassLoader获取路径的时候出错了。 E...

你不得不知道的对象的序列化和反序列化

序列化和反序列化

对象的序列化和反序列化 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 当你创建对象时,只要你需要,它就会一直存在,但是当程序终止的时候,那么这个对象也就随之消失了,尽管这么做是有意义的,但是仍旧存在某些的情况,如果对...

不学无数——Gson源码解析

Gson源码解析

Gson 在用Gson解析时传过来的Json串时,如果将其解析为对象A,而这个对象A继承了对象B。这两个对象都有属性名为name的值,那么在进行解析的时候就会报如下错误。 Exception in thread "main" java.lang.IllegalArgumentException: class Practice.Day12.Student2 declares multipl...

不学无数——Mybatis解析判断表达式源码分析

Mybatis解析判断表达式源码分析

Mybatis解析判断表达式源码分析 在我们开发过程中用Mybatis经常会用到下面的例子 Mapper如下 Map<String ,String > testArray(@Param("array") String [] array); XMl中的sql如下 <select id="testArray" resultType="map"> sel...

不学无数—适配器模式

适配器模式

适配器模式 智者千虑必有一失,愚者千虑必有一得 在我们开发过程中也会经常碰到一些给原有的系统加一些功能,所以不管前期我们呢可行性、需求分析和系统设计处理的多好,随着时间的推移,总会出一些“意外”。因此我们该如何处理掉这些“意外”呢?聪明的程序员们就想到了许多的补救模式,其中适配器模式就是补救模式中的一种。这种模式可以能够让你从因为业务的快速迭代而引发代码改变的烦恼中解脱出来。 ...

不学无数——JAVA中NIO再深入

JAVA中NIO再深入

JAVA中NIO再深入 在上一章节的JAVA中的I/O和NIO我们学习了如何使用NIO,接下来再深入了解一下关于NIO的知识。 缓冲器内部的细节 Buffer由数据和可以高效地访问及操作这些数据的四个索引组成。这四个索引是 mark:标记,就像游戏中设置了一个存档一样,可以调用reset()方法进行回归到mark标记的地方。 position:位置,其实缓冲器实际上就是一个...

不学无数—String字符串中获取所有匹配结果的索引值

String字符串中获取所有匹配结果的索引值

String字符串中获取所有匹配结果的索引值 例如现在我们有这样一段代码 public interface ActErrorHisMapper { public List<ActError> getPage(Map<String, Object> params); public List<ActError> getList(Map...

不学无数—在工作中被逼出来的解决之道

在工作中被逼出来的解决之道

在工作中被逼出来的解决之道 相信初入职场的小伙伴们肯定经历过在组内统计一些东西的事情,简单却繁琐。前一段时间给了一个关于统计组内各个系统中都用了哪些用户下的表的任务。刚拿到这个任务的时候,就是按照之前的思维模式进行完成的,直接在编辑工具中全局搜索查找用户名.(因为我们公司的表都是用户名.表名),在第一个系统中的时候我这么干还行,因为涉及到的用户也少,表也少。所以也就很快的按部就班的完成了,...