fastmybatis 1.0.11 发布,增强团队协作

tanghc
 tanghc
发布于 2018年07月28日
收藏 13

fastmybatis 1.0.11 发布,此次更新内容有:

  • 增强Mapper.xml,不同Mapper文件可指定同一个namespace,最终会合并 doc

  • 优化属性拷贝

本次更新重点是Mapper.xml增强,多文件可指定同一个namespace。

在以往的开发过程中,一个Mapper对应一个xml文件(namespace)。如果多人同时在一个xml中写SQL的话会造成各种冲突(虽然能够最终被解决)。

fastmybatis打破这种常规,允许不同的xml文件定义相同的namespace,程序启动时会自动把他们的内容合并到同一个文件当中去。

  • 张三的UserMapper_zs.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mayapp.mapper.TUserMapper">

    <select id="selectByName" parameterType="String" resultMap="baseResultMap">
        select * from t_user t where t.username = #{username} limit 1
    </select>

</mapper>
  • 李四的UserMapper_ls.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mayapp.mapper.TUserMapper">

    <select id="updateUser" parameterType="String" resultMap="baseResultMap">
        update t_user set username = #{username} where id=#{id}
    </select>

</mapper>

最终会合并成

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mayapp.mapper.TUserMapper">
    <!-- 张三部分 -->
    <select id="selectByName" parameterType="String" resultMap="baseResultMap">
        select * from t_user t where t.username = #{username} limit 1
    </select>

    <!-- 李四部分 -->
    <select id="updateUser" parameterType="String" resultMap="baseResultMap">
        update t_user set username = #{username} where id=#{id}
    </select>

</mapper>

这样也体现了开闭原则,即新增一个功能只需要新增一个文件就行,不需要修改原来的文件。

如果SQL写多了还可以把它们进行分类,放到不同的xml中,便于管理。

注:合并动作是在启动时进行的,并不会生成一个真实的文件。

关于fastmybatis

fastmybatis是一个mybatis开发框架,其宗旨为:简单、快速、有效。

  • 零配置快速上手

  • 无需编写xml文件即可完成CRUD操作

  • 支持mysql,sqlserver,oracle,postgresql,sqlite

  • 支持自定义sql,sql语句可写在注解中或xml中

  • 支持与spring-boot集成,依赖starter即可

  • 轻量级,无侵入性,是官方mybatis的一种扩展

fastmybatis与MyBatis generator对比

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:fastmybatis 1.0.11 发布,增强团队协作
加载中

精彩评论

搬砖工程师
搬砖工程师

引用来自“JFinal”的评论

“多文件可指定同一个namespace” 这个本应如此,为何 mybatis 不支持这个功能,还需扩展去实现
原生的就支持,至少我用的3.4.6是没问题。

最新评论(7

搬砖工程师
搬砖工程师

引用来自“JFinal”的评论

“多文件可指定同一个namespace” 这个本应如此,为何 mybatis 不支持这个功能,还需扩展去实现
原生的就支持,至少我用的3.4.6是没问题。
tanghc
tanghc

引用来自“JFinal”的评论

“多文件可指定同一个namespace” 这个本应如此,为何 mybatis 不支持这个功能,还需扩展去实现
这跟加载有关系,好比结婚,对上了,去民政局登记好了,结果又来了个新娘子。。说要跟他登记。。 这不乱套了吗。我这方法就是一夫多妻制:smile:
JFinal
JFinal
“多文件可指定同一个namespace” 这个本应如此,为何 mybatis 不支持这个功能,还需扩展去实现
tanghc
tanghc

引用来自“行者__”的评论

“开闭原则,即新增一个功能只需要新增一个文件就行 ” 这是你们村的开逼原则?
如果单拿这句话来解释开闭原则的话确实不靠谱。我认为开闭原则是一种思想,或者说理论。程序要添加一个新功能,新增一个模块比修改老模块要好;新增一个文件要比修改原来的文件好;扩展一个子类比修改原来的父类要好,等等,不拘于某种形式。开闭原则的本质还是为了维护。
W
WO不吹牛
xml不能继承和扩展,这可能是大家都很需要解决的
tanghc
tanghc

引用来自“ddatsh”的评论

合并这思路大赞
感谢支持:smile:
ddatsh
ddatsh
合并这思路大赞
返回顶部
顶部