开源社区喜报:MyBatis 3.5.0 发布啦
备注:2019年10月,MyBatis当前最新版介绍,请移步: mybatis最新版本 ,此栏目的内容会实时同步MyBatis Git官网的最新版本。
喜讯:MyBatis 3.5.0 正式发布
众位兄弟们,你们都还好吗?告诉大家一个好消息,以稍稍宽慰一下在IT寒冬中大家都绷紧的心。MyBatis 3.5.0 发布啦,发布时间是2019年1月20日。下载地址为:https://github.com/mybatis/mybatis-3/releases
2019年,一个特殊的年份,一个不拼命就意味着卷铺盖走人的年份。在近日,出行巨头滴滴官宣了:裁员15%。可怜的人啊,不是你的问题,而是时代抛弃了你。但是请记住:行业寒冬,江湖有变,擦干眼泪,明天会更好!
抬头看时代,低头看技术,已然不能满足时代的要求。不要以为拥有技术就拥有一切,眼下的技术如同烈火烹油般的爆发,越烧越旺,而我们却是朝如青丝暮成雪,电脑面前悲白发。
MyBatis 3.5.0 新特征
闲言少叙,言归正传,说一下MyBatis 3.5.0的新特征,首先要明确一点:MyBatis 3.5.0 需要运行在Java 8或者以上版本。
(1)Added Automatic-Module-Name : org.mybatis。用于当 mybatis jar 在 Java 9 中被用作自动模块时,确保名称是 org.mybatis
(2)Support java.util.Optional as return type of mapper method。新版本mybatis可以这么定义方法:
public interface UserMapper {
@Select("select * from users where id = #{id}")
Optional<User> findOne(Integer id);
}
(3)<set /> tag now trims the leading comma。trim就是修剪之意,<set />标签可以自动修剪多余的前缀逗号,例如下面这种写法:
UPDATE user
<set>
<if test="name != null">
name=#{name}
</if>
<if test="desc != null">
,desc=#{desc}
</if>
</set>
在之前,我们一般这么写:
UPDATE user
<set>
<if test="name != null">
name=#{name},
</if>
<if test="desc != null">
desc=#{desc}
</if>
</set>
说实话,我倒是更喜欢后一种写法。总之,新的特性还有很多,后面再详细介绍吧。
MyBatis 3.5.0 与 3.4.6 版本不兼容
最后要说明一点:要注意新版本与3.4.6版本不兼容的地方,详见:https://github.com/mybatis/mybatis-3/releases
有点好奇,hibernate有级联删除和修改的设置,mybatis为什么不提供这样的操作?
这叫差异化生存,如果mybatis处处追随hibernate,那还会有人用它吗?
mybatis3.5.1 Ognl.java 放在default package提示 java.lang.ClassNotFoundException: Cannot find class: java.lang.Ognl ,mybatis3.4.6就Ok,