Java 杂记
mybatis 的查询
mybatis 查询没有数据的时候,会返回什么?
- 返回类是基本数据类型的包装类型和对象,返回为空 null
- 返回List或Map时,返回结果时是为空的集合
- 返回结果是基本数据类型时,没有数据时会抛出异常
Guava 强大的集合工具Lists
Guava的Lists类中提供了许多实用的方法和静态函数,可以帮助我们优雅的编码。
- 集合分区方法 - partition()
- 集合转换方法 - transform()
- 获取笛卡尔积方法 - cartesianProduct()
- Lists.newLinkedList()
- Lists.newArrayList();
参考文档:Guava - 强大的集合工具Lists
maven相关
maven 依赖问题
项目使用maven管理jar包,很容易因为各种原因(网速慢、断网)导致jar包下载不下来,出现很多.lastUpdated文件。这些不完全下载的包,会导致maven不会去远程下载,需要到仓库的目录下去清除。
maven项目pom.xml中scope类型
scope的分类
- compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去
- test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit
- runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段
- provided:打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作
- system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径
maven 仓库 repository
参考文档仓库 repository